首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux容器和mapDispatchToProps

Redux容器和mapDispatchToProps
EN

Stack Overflow用户
提问于 2019-01-28 09:02:16
回答 2查看 54关注 0票数 0

我用Redux和React一起使用Redux。控制台登录到App.js中,用于this.props和this.props.fetchProducts,分别返回空对象和未定义对象。

我想问的第一个问题是--为什么是这种情况,以及如何解决它。

我的第二个问题是--我如何把商店传给CartPage和MainPage?或者不建议这样做,因为我们应该使用connect将所需的状态值传递给组件?

非常感谢。

index.js

代码语言:javascript
复制
const rootReducer = combineReducers({
  ProductsReducer,
  PriceReducer,
  UserReducer
});

const store = compose(applyMiddleware(...middlewares))(createStore)(rootReducer);

ReactDOM.render(
  <Provider store={store}>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </Provider>, 
  document.getElementById('root'));

App.js

代码语言:javascript
复制
class App extends Component {

  constructor(props) {
    super(props);
    console.log(this.props);
    console.log(this.props.fetchProducts);
  }

  render() {
    return (
      <Switch> 
        <Route exact path='/cart' render={() => <CartPage />} />
        <Route exact path='/' render={() => <MainPage />} />
      </Switch>
    );
  }
}

AppContainer

代码语言:javascript
复制
import { connect } from 'react-redux';
import { FetchProducts } from '../actions/FetchProducts';
import App from '../App';

const mapDispatchToProps = dispatch => ({
  fetchProducts: () => dispatch(FetchProducts())
});

export default connect(null, mapDispatchToProps)(App);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-28 11:51:15

App替换为index.js中的AppContainer。您总是需要使用封装在connect中的容器组件从react redux中从存储中检索数据。

代码语言:javascript
复制
ReactDOM.render(
  <Provider store={store}>
    <BrowserRouter>
      <AppContainer />
    </BrowserRouter>
  </Provider>, 
  document.getElementById('root'));
票数 1
EN

Stack Overflow用户

发布于 2019-01-28 09:16:04

1-连接你的应用程序组件存储使用mapStateToProps,然后控制台的结果。

2-为了将存储区传递给主页,我更愿意将您的主页连接到使用mapStateToProps存储的主页,或者您可以通过自定义道具将想要的数据传递给主页,如

代码语言:javascript
复制
<Route exact path='/cart' render={() => <CartPage />} fetchProductDetails={this.props.fecthProduct}/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54398488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档