【发布时间】:2019-07-24 01:04:32
【问题描述】:
我正在使用带有钩子的功能组件。我需要从孩子更新父母的状态。我在 Parent 中使用了一个 prop 函数。 一切正常,除了我的 prop 函数正在获取以前的状态而不是当前状态。我的 prop 函数在 useState 钩子设置当前状态之前执行。 我怎样才能等待我的回调函数在 useState 调用后执行。我正在从基于类的组件中寻找类似 setState(state,callback) 的东西。
这里是sn-p的代码:
function Parent() {
const [Name, setName] = useState("");
getChildChange = getChildChange.bind(this);
function getChildChange(value) {
setName(value);
}
return <div> {Name} :
<Child getChildChange={getChildChange} ></Child>
</div>
}
function Child(props) {
const [Name, setName] = useState("");
handleChange = handleChange.bind(this);
function handleChange(ele) {
setName(ele.target.value);
props.getChildChange(collectState());
}
function collectState() {
return Name;
}
return (<div>
<input onChange={handleChange} value={Name}></input>
</div>);
}
【问题讨论】:
-
你为什么不直接把
setName传给孩子呢? -
我希望我们在这个线程中得到有趣的 cmets github.com/facebook/react/issues/17969
-
有一个简单的方法可以做到这一点没有 useEffect stackoverflow.com/a/70405577/5823517
标签: reactjs react-hooks