我仍然不知道如何从动作中获取数据。
这是动作:
import myConstant from './constatnts'
...
export const fetchData = {
isLoading,
isSuccess,
...
};
const isLoading = () => dispatch => {
dispatch({
type: myConstant.FETCH_LOADING,
payload: LoadingApi()
});
}
还尝试使用ES5:
function isSuccess() {
return function(dispatch){
dispatch({
type: myConstant.FETCH_DATA
payload: fetchDataApi()
});
};
}
并且在将数据发送到组件中的Redux时出错:
import {fetchData} from './myData'
componentWillMount() {
fetchData.isSuccess; // or fetchData.isLoading
}
我遇到以下错误:
期望了一个赋值或函数调用,而是看到了一个表达式 没有未使用的表达式
我该如何解决?
答案 0 :(得分:1)
您需要使用调度键盘调用操作。如果要使用react组件中的dispatch关键字,则需要使用connect()
包中的react-redux
函数包装Component。
接下来,您将至少需要定义mapStateToProps
函数来获取数据(编辑:您不需要包括mapStateToProps :)仅当您想将一些数据返回给组件时才包含它)由reducer保存到存储中,从redux存储中存储为props。
因此您的代码应如下所示:
import {fetchData} from './myData'
import {connect} from "react-redux";
class YourComp extends Component {
...
componentWillMount() {
this.props.dispatch(fetchData.isSuccess());
}
...
}
// this will push data from the store to your props
const mapStateToProps = state => ({
yourData: state.reducer.data
});
// besides other things, this line will push dispatch function callback into your component's props
export default connect(mapStateToProps)(YourComp);