我的问题和this one几乎一样.
在这种情况下,此人拥有以硬编码方式创建的状态 map :
const App = props => {
const [state, changeState] = useState({
name: "",
eventTitle: "",
details: "",
list: "",
toggleIndex: "",
editName: "",
editEventTitle: "",
editDetails: "",
});
不同之处在于我想动态创建这些状态,从另一个组件接收它们。我尝试过类似的方法,但显然没有用:
const App = props => {
const [state, changeState] = useState({
props.inputs.map((input, i) =>
input = ""
)
});
你知道解决这个问题的方法吗?
最佳答案
假设 props.input
只是您想要的键的数组,您可以通过遍历数组并使用 []动态分配状态对象键来填充状态对象
const [state, changeState] = useState({});
useEffect(() => {
props.input.forEach(item => changeState(prevState => ({...prevState, [item]: "" })));
}, [props.input])
关于reactjs - 如何动态使用 map 函数 Hook useState 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60710716/