我有一个问题,我一直在谷歌搜索,但找不到答案。如果我有一个组件(父),它有一个使用钩子的状态useState和另一个我想将 setState 函数传递给的组件(子),但状态是一个嵌套对象,我该怎么做。例如:
家长:
import React, { useState } from 'react';
import ChildComponent from '../components/ChildComponent
export default function Parent() {
const [state, setState] = useState({name: '', age: '', height: '', eyeColor: ''})
return (
<h1>Title</h1>
<ChildComponent state={state} setState={???}/>
);
}
孩子:
import React, { useState } from 'react';
export default function ChildComponent({state, setState}) {
return (
<label htmlFor='nameInput'>Name:</label>
<input name='nameInput' value={state.name} onChange={(e) => setState???}/>
);
}
我通常知道状态是否在一个组件中setState({...state, state.name: 'Jane'}),但我不确定我将如何传递这种信息setState。
编辑:我希望ChildComponent setState函数是动态的,这样我可以为每个状态值(名称、年龄、身高、eyeColor)重用该组件 4 次,同一个组件可能会传入一个值来更改更新的值?