const Add_Setting = ()=>{
const [list, setList] = useState({
time : 1,
arr1 : [
[ {title : 'title1', number : 1}, {title : 'title2', number : 1}],
[ {title : 'title1', number : 1}, {title : 'title2', number : 1}]
]
});
const List2 =(props)=>{
let arr2= list.arr[props.index]["arr2"];
let list2 = arr2.map((e, i)=>(
// i want change title and number
<input type="text" value={e.title}>
<input type="number" value={e.number}>
))
return list2;
}
const List = ()=>{
let list = list.arr.map((e, i)=>(
<div>
<List2 index={i}/>
</div>
))
return list;
}
return(
<div>
<List />
</div>
)
}
你好兄弟!
我想改变数组中的数组,
但是,输入被刷新,只输入一个字符
有办法吗?
天才朋友
如果可能,请让我知道无错误代码!
我希望这就是你要找的
const Add_Setting = () => {
const [list, setList] = useState({
time: 1,
arr: [
[{ title: 'title1', number: 1 }, { title: 'title2', number: 1 }],
[{ title: 'title1', number: 1 }, { title: 'title2', number: 1 }],
],
});
const onChange = (e, primaryIndex, secondaryIndex) => {
setList((oldList) => {
const newArr = [...oldList.arr];
newArr[primaryIndex][secondaryIndex].number = e.target.value;
return {
...oldList,
arr: newArr,
};
});
};
const List2 = ({ index: primaryIndex }) => list.arr[primaryIndex].map((e, secondaryIndex) => (
<>
<input type="text" value={e.title} />
<input type="number" value={e.number} onChange={(ev) => onChange.bind(null, ev, primaryIndex, secondaryIndex)} />
</>
));
const List = () => list.arr.map((_, i) => (
<div>
<List2 index={i} />
</div>
));
return (
<div>
<List />
</div>
);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句