Asp.net core 如何在嵌套组件中使用减速器?

Asp.net core 如何在嵌套组件中使用减速器?,asp.net-core,react-redux,Asp.net Core,React Redux,我有一个react.component-FetchData。它与action reducer store有连接。在action reducer store中,它从api获取数据,并在FetchData组件中呈现结果 导出类FetchData扩展组件{ 建造师(道具){ 超级(道具); 此.props.requestWeatherForecast(0); } render(){ 返回。。。; } } 导出默认连接( state=>state.weatherforecast, dispatch=>b

我有一个react.component-FetchData。它与action reducer store有连接。在action reducer store中,它从api获取数据,并在FetchData组件中呈现结果

导出类FetchData扩展组件{ 建造师(道具){ 超级(道具); 此.props.requestWeatherForecast(0); } render(){ 返回。。。; } } 导出默认连接( state=>state.weatherforecast, dispatch=>bindActionCreators(actionCreators,dispatch) )(获取数据); 如果我使用route直接访问组件,它工作得非常好:


如果将FetchData移动到另一个组件(如Home),则会出现问题:

const Home=props=>()
所以我带着路线去组件之家:


并且期望在主组件中看到FetchData,但会出现错误,就像FetchData中根本没有连接的action reducer存储一样

我的逐步行动:

我创建了一个asp.net core react.js+redux空应用程序。 然后我将FetchData.js类更改为export类

导出类FetchData扩展组件 然后我导入了FetchData并在Home.js中替换了body

从“React”导入React;
从'react redux'导入{connect};
从“/FetchData”导入{FetchData};
const Home=props=>(
);
导出默认连接()(主);
此时,reducer停止在FetchData.js中工作(或者至少看起来是这样)

  • 我已经尝试将Home.js作为React.Component类
  • 我尝试在FetchData.js中添加带有super(props)的构造函数
  • 我已尝试将默认连接从FetchData添加到Home

您导入的组件不正确

import React from 'react';
import { connect } from 'react-redux';
import FetchData from './FetchData';

const Home = props => (
    <FetchData />
);

export default connect()(Home);
从“React”导入React;
从'react redux'导入{connect};
从“./FetchData”导入FetchData;
const Home=props=>(
);
导出默认连接()(主);

删除
FetchData
周围的括号这些括号用于文件的非默认导出。在您的情况下,这是
/FetchData
。由于使用了导出默认值,因此不需要括号

你记得映射DispatchToprops和mapStatetoProps吗?你能发布整个文件的代码吗?你需要连接FetchData,所以确保它是
导出默认连接(MapStateTops,mapDispatchtoProps)(FetchData)
在文件底部。@Mark,我已经在git上发布了它-FetchData.js在按钮处有:导出默认连接(state=>state.weatherForecasts,dispatch=>bindActionCreators(actionCreators,dispatch))(FetchData);-当它没有嵌套时工作正常更改
export default connect()(Home);
到只
export default Home
。这里不需要使用
connect