我从API调用中获取数据。所以在componentWillMount
我正在进行mappedDispatchToProps
的API调用:fetchCats
class Cats extends Component {
constructor(props){
super();
this.state = {
toPass: 0
}
}
componentWillMount() {
this.props.fetchCats(this.state.toPass);
};
getCats(){ // <= Is this the proper way to update the state and call the api?
this.setState({
toPass: this.state.toPass+2 //<= increment by 2
});
this.props.fetchCats(this.state.toPass);
}
renData() {
//map the array this.props.categories and return data
}
render(){
const { categories } = this.props.categories
console.log("CATEGORIES: ", categories);
return (
<View>
<View>
<Button
name="PressMe"
onPress={() => this.getCats()}>
</Button>
</View>
<View>
{this.reData()}
</View>
</View>
)
}
}
所以第一次页面加载toPass = 0
时。单击按钮时,传递的值为2,但categories
得到的结果相同。结果应该附加到Redux
状态的类别数组。但是在第一次按下之后一切正常,除了toPass=0
的结果的双重输入。我的getCats()
功能出了什么问题?
非常感谢。
答案 0 :(得分:2)
试试这个:
getCats = () => {
this.setState({
toPass: this.state.toPass+2
}, () => {this.props.fetchCats(this.state.toPass)});
}
并使用onPress={this.getCats}