将数据存储在React组件外部并从中派生状态

6qfn3psc  于 2022-09-18  发布在  Java
关注(0)|答案(1)|浏览(148)

将数据存储在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>
  );
};
y4ekin9u

y4ekin9u1#

这听起来像是使用Context来处理的理想情况。使用上下文可以帮助您全局管理状态,而不是改变对象并一直在树中上下传递它们,从而使它们难以管理。

相关问题