无法将Redux连接到孙组件

时间:2015-10-05 22:06:01

标签: reactjs redux

如何将Redux连接到父组件下面几层的子组件?我无法弄清楚如何将store传递给道具而不会爆炸。

我没有使用IronRouter,而是使用Redux 3和React 0.13。这是一个例子:

const SearchBar = React.createClass({
  render() {
    return <div> {this.props.text} </div>;
  }
});


function mapStateToProps(state) {
  return {text: state.search.text};
}

_SearchBar = connect(mapStateToProps)(SearchBar);
  

无法在“Connect(SearchBar)”的上下文或道具中找到“store”。将根组件包装在<Provider>中,或者将“store”显式传递为“Connect(SearchBar)”的支柱。

2 个答案:

答案 0 :(得分:4)

您需要将商店一直向下传递到中间组件,或者如消息所示,利用应用顶部的<Provider>组件自动将其传递下来。

答案 1 :(得分:2)

1)将您的根组件包裹在<Provider store={store}></Provider>

class Root extends React.Component {
  render() {
    return (
      <Provider store={store}>
        <YourAppComponent />
      </Provider>
    )
  }
}

Provider通过React&#39; context传递商店。

2)您的connect()现在应该可以使用:),但前提是所有连接的组件都是<YourAppComponent />的后代