React Native:函数未定义

时间:2019-06-26 15:29:59

标签: react-native undefined react-native-ios

我正在用本机生成一个应用程序,并且由于定义了一个函数而不断出现错误,并且似乎无法弄清楚如何解决它。

这是导致错误的代码部分。它的目的是使用reduxredux-thunk从api提取数据。

    componentDidMount() {
      this.props.fetchData(
        V.sprintf(
          "http://timetree.igem.temple.edu/api/pairwise/%s/%s",
          this.state.taxonA,
          this.state.taxonB
        )
      );
    }

这是组件使用的fetchData函数,位于操作文件夹中。

export const fetchData = url => {
  return async dispatch => {
    dispatch(fetchingRequest());
    try {
     let response = await fetch(url);
     let json = response.json();
     dispatch(fetchingSuccess(json));
    } catch(error){
       dispatch(fetchingFailure(error));
    }
  }
};

这是我尝试将其传递给组件的方法

SearchScreen.propTypes = {
  fetchData: PropTypes.func.isRequired,
  response: PropTypes.object.isRequired
};

2 个答案:

答案 0 :(得分:1)

因此,正如我在对propTypes的评论中所说的那样,您没有传递任何内容,而是在测试道具的类型。您应该导入函数并将其传递给connect

import { connect } from 'react-redux';
import { fetchData } from '../actions';

export default connect(mapStateToProps, { fetchData })(App);

答案 1 :(得分:-1)

propType仅定义类型,而不定义实际值。 如果导出功能 export const fetchData 只需从您的组件文件中导入它,然后使用它即可:

fetchData(
    V.sprintf(
      "http://timetree.igem.temple.edu/api/pairwise/%s/%s",
      this.state.taxonA,
      this.state.taxonB
    )
  );

没有“ this.props”。