在嵌套组件中进行 React Redux 连接

问题描述 投票:0回答:2

渲染时无法使用 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?

我可以从另一个父组件更新子组件吗?我知道你可以使用 props 从孩子那里更新父母,但不知道如何以其他方式做到这一点。

reactjs redux react-redux react-redux-connect
2个回答
0
投票

connect函数必须导出, 可以有这样的语法,有很多不同的方法可以做到这一点, 所以这里

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
投票

你绝对可以用 redux 来更新孩子所依赖的 store。如果没有任何代码,很难准确知道您的问题是什么。

© www.soinside.com 2019 - 2024. All rights reserved.