如何解决错误:需要执行赋值或函数调用,而是看到一个表达式no-unused-expressions

时间:2018-12-01 16:41:08

标签: reactjs redux

我仍然不知道如何从动作中获取数据。

这是动作:

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
}

我遇到以下错误:

  

期望了一个赋值或函数调用,而是看到了一个表达式   没有未使用的表达式

我该如何解决?

1 个答案:

答案 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);