我正在用本机生成一个应用程序,并且由于定义了一个函数而不断出现错误,并且似乎无法弄清楚如何解决它。
这是导致错误的代码部分。它的目的是使用redux
和redux-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
};
答案 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”。