【发布时间】:2025-12-17 03:50:01
【问题描述】:
我有一个问题一直在谷歌上搜索,但找不到答案。如果我有一个组件(父级)的状态使用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 函数是动态的,因此我可以为每个状态值(名称、年龄、身高、眼睛颜色)重复使用该组件 4 次,其中相同的组件可能会将一个值传递给更改更新什么值?
【问题讨论】:
-
如果您似乎打算独立更新它们,为什么要将所有这些值存储在一个状态对象中?
-
我为每个值使用了多个
setState钩子。我只是想知道是否可以在一个状态对象中做到这一点。也许不是,在这种情况下,我将继续使用多个钩子。
标签: javascript html reactjs