我仍然不知道如何从我的操作中获取数据。
行动如下:
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
}
我有以下错误:
应为赋值或函数调用,但实际看到的却是表达式没有未使用的表达式
如何修复此问题?
您需要使用dispatch keywoard调用您的操作。如果要使用react组件中的dispatch关键字,则需要使用react-redux
包中的connect()
函数包装组件。
接下来,您至少需要定义mapStateToProps
函数来获取数据(EDIT:您不需要包含mapStateToProps:(,仅当您想将一些数据返回到组件时才包含它(,这些数据是您通过reducer保存到存储中的,从redux存储中作为道具保存到组件中。
所以您的代码应该如下所示:
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);
您应该小心语法---
const mapStateToProps = state =>({
})
const mapDispatchToProps = dispatch =>({
addExpenseHandler : (expenseItemData) => dispatch(addExpenseItemData(expenseItemData))
})