React Native: функция не определена - PullRequest
0 голосов
/ 26 июня 2019

Я создаю приложение на реагирующем языке и продолжаю получать сообщение об ошибке с определяемой функцией, и не могу понять, как ее исправить.

Это часть кода, которая вызывает ошибку.Он предназначен для извлечения данных из API, используя для этого redux и redux-thunk.

    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 ]

1 голос
/ 26 июня 2019

Итак, как я сказал в комментариях к propTypes, вы ничего не пропускаете, вы тестируете тип вашего реквизита. Вы должны импортировать свою функцию и передать ее connect.

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

export default connect(mapStateToProps, { fetchData })(App);
0 голосов
/ 26 июня 2019

propType определяет только типы, а не фактическое значение. если вы экспортируете функцию export const fetchData просто импортируйте его из файла компонента и используйте его:

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

без "this.props".

...