反应redux连接嵌套组件

时间:2019-06-27 10:02:53

标签: reactjs redux connect

渲染时无法通过redux-connect获取多个嵌套组件

我创建了带有redux connect的下拉组件,以便在我的应用程序中重复使用。

创建的组件CategoryDropDown,SubCategoryDropDown,CategoryTypeDropDown

我正在将CategoryDropDown组件嵌套到SubCategoryDropDown中-正常工作

SubCategoryDropDown嵌套在CategoryTypeDropDown组件中时,只会触发CategoryDropDown connect()方法。

//这是在所有组件中使用的connect方法 //

export default connect(
    mapStateToProps,
    dispatch => bindActionCreators(actionCreators, dispatch)
)(SubCategoryDropDown);

在使用嵌套组件时,我是否正确使用组件并进行redux-connect?

我可以从另一个父组件更新一个子组件吗?我知道您可以使用道具从孩子那里更新父母,但不确定如何做。

2 个答案:

答案 0 :(得分:0)

连接功能必须导出, 可以有这样的语法,有很多不同的方法, 所以这里的SubCategoryDropDown组件可以将连接的东西用作道具,

export default connect(
    mapStateToProps,
    mapDispatchToProps 
)(SubCategoryDropDown);

现在我已导入动作,已映射到道具,

import { addTodo, deleteTodo} from './actionCreators'

const mapDispatchToProps = {
  addTodo,
  deleteTodo
}

state中存在的事物,例如todos,现在用作props,仅在(SubCategoryDropDown)组件内部,

const mapStateToProps = state => ({ todos: state.todos })

在嵌套CategoryDropDown时, 您可以像这样将数据传递给孩子,

<CategoryDropDown todos=this.props.todos />

答案 1 :(得分:0)

您绝对可以使用redux更新孩子所依赖的商店。没有任何代码,很难确切地知道您的问题所在。