Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 组件级React中的状态管理_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 组件级React中的状态管理

Javascript 组件级React中的状态管理,javascript,reactjs,redux,Javascript,Reactjs,Redux,如果您使用Redux来管理全局状态,那么如何管理仅由该组件及其类似于childrenact的容器使用的独占组件状态 编辑 我已经在使用useState了。 我要求一个更好的方法,因为我最终得到了很多useState语句 有什么想法吗?我认为,当redux和其他工具管理状态尚未出现时,您希望用纯React控制的状态复杂的容器也会出现。 在您的例子中,容器是一个根组件,类似于索引处的App组件。它管理复杂的状态对象,并将键值或某些函数传递给子对象 Class Container extend Com

如果您使用Redux来管理全局状态,那么如何管理仅由该组件及其类似于childrenact的容器使用的独占组件状态

编辑 我已经在使用useState了。 我要求一个更好的方法,因为我最终得到了很多useState语句


有什么想法吗?

我认为,当redux和其他工具管理状态尚未出现时,您希望用纯React控制的状态复杂的容器也会出现。 在您的例子中,容器是一个根组件,类似于索引处的App组件。它管理复杂的状态对象,并将键值或某些函数传递给子对象

Class Container extend Component {
   state = {
       // complicated state
   }

   render() {
       return (
          <Children1 key1={this.state.value1...} />
          <Children2 key1={this.state.value2...} />
          <Children3 key1={this.state.value3...} />
       )
   }
}
或者,您可以使用功能组件更灵活地管理状态:

const Container = () => {
   const [state1, setState1] = useState({ // some key: value here });
   const [state2, setState2] = useState({ // some key: value here });
   const [state3, setState3] = useState({ // some key: value here });
   return (
      <Children1 keyObject={state1} keyValue={state1...} />
      <Children2 keyObject={state2} />
      <Children3 keyObject={state3} />
   )
}
请用您的编辑回答: 我认为useState是处理您的案例的更好方法。使用客户端时,必须控制变量的使用位置。国家的分裂将帮助你更灵活地控制它们。
如果你有很多useState语句,你应该考虑修改容器和子组件的结构。

复杂状态是什么意思?你需要将多个状态传递给不同的子组件。我使用MapStateTrops来更改状态。我想你没有明白我的问题。MapStateTops:用于从存储状态选择零件,并将其映射到组件的道具。我的问题是,组件状态还不是存储的一部分,我不想将它放在存储中,因为它只在组件及其子组件中使用。为什么不在组件级别上使用普通状态管理useState?