将数据存储在Reaction组件外部并从组件内部更改数据并从中派生状态合法吗?这在更新复杂的深度嵌套状态时可能会有所帮助。
import React from "react";
let globalState = {
foo: { bar: { baz: { value: 0 } } },
};
const Component = () => {
const [state, setState] = React.useState(globalState);
let baz = globalState.foo.bar.baz;
const changeValue = () => {
baz.value += 1;
setState({ ...globalState });
};
return (
<div>
<label>{state.foo.bar.baz.value}</label>
<button onClick={changeValue}>change</button>
</div>
);
};
1条答案
按热度按时间y4ekin9u1#
这听起来像是使用Context来处理的理想情况。使用上下文可以帮助您全局管理状态,而不是改变对象并一直在树中上下传递它们,从而使它们难以管理。