Javascript 反应最佳实践:将状态传递给孩子还是让孩子直接检查状态?

Javascript 反应最佳实践:将状态传递给孩子还是让孩子直接检查状态?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在使用react/redux。我有一个程序,它有两个组件,叫做foo和bar。Foo需要设置一个bar用来决定如何渲染的状态。我让foo使用一个调度程序来调度一个动作,而reducer使用这个动作来设置全局状态,到目前为止一切正常 我的问题是谁应该加载它。是让我的索引(呈现foo和bar)检查状态,然后将状态值作为道具传递给bar更好,还是让bar删除中间人并直接检查状态更好 更确切地说,我想知道react/redux的开发人员是否支持一种特定的方法,或者,如果这是一种设计决策,只要开发人员

我正在使用react/redux。我有一个程序,它有两个组件,叫做foo和bar。Foo需要设置一个bar用来决定如何渲染的状态。我让foo使用一个调度程序来调度一个动作,而reducer使用这个动作来设置全局状态,到目前为止一切正常

我的问题是谁应该加载它。是让我的索引(呈现foo和bar)检查状态,然后将状态值作为道具传递给bar更好,还是让bar删除中间人并直接检查状态更好


更确切地说,我想知道react/redux的开发人员是否支持一种特定的方法,或者,如果这是一种设计决策,只要开发人员保持一致,任何一种方法都是可行的?

使用redux和react时的主要建议之一是记住表示和容器组件模式,在这种模式中,我们的呈现组件不知道redux的存在并从props接收数据,而容器组件是订阅react状态并将其传递给呈现组件的组件:

这里有一个表现成分,正如你所见,它与反应无关

const TodoList = ({ todos, onTodoClick }) => (
  <ul>
    {todos.map((todo, index) => (
      <Todo key={index} {...todo} onClick={() => onTodoClick(index)} />
    ))}
  </ul>
)

您可以获得更多信息

在层次结构中尽可能降低状态,这样元素就不会不必要地重新命名(也就是说,如果只有bar需要它,就在bar中重新命名)。最好添加一些示例代码,否则只有长文本看起来很无聊,人们不会对您的问题感兴趣;将父组件状态值操纵到所有子组件道具是最佳方法。唯一的家长我的意思是容器应该有反应还原连接管道
const VisibleTodoList = connect(
  mapStateToProps,
  mapDispatchToProps
)(TodoList)