我正在使用react native-redux设置全局状态,并且在处理单个数据时可以正常工作,但是当我有多个数据时它无法正常工作。下面是我的代码:
import {connect} from 'react-redux'
constructor(props){
super(props)
this.state = {
comment:'',
region:[],
}
}
<Button
onPress={() => {
this.setState({
comment : this.state.comment,
// works fine if I only handle comment or region
region : this.state.region,
},
() => this.props.commentHandler(this.state),
() => this.props.regionHandler(this.state)}}>
<Text>UPDATE</Text>
</Button>
function mapStateToProps(state) {
return {
comment : state.comment,
region : state.region
}
}
function mapDispatchToProps(dispatch) {
return {
commentHandler : (state) => dispatch({ type: 'COMMENT', payload: state.comment}),
regionHandler : (state) => dispatch({ type: 'REGION', payload: state.region})
}
}
我不知道我做错了什么,但是例如当我尝试处理多个数据时,注释和区域将无法正常工作。如果我删除
() => this.props.commentHandler(this.state)
或() => this.props.regionHandler(this.state)
但不能一起使用,它会完美工作。知道我做错了什么吗?任何意见或建议,将不胜感激!
最佳答案
将我的处理程序包装为一个函数即可。感谢@Paulquappe。
<Button
onPress={() => {
this.setState({
comment : this.state.comment,
region : this.state.region,
},
() => this.props.regionHandler(this.state),this.props.commentHandler(this.state),
() => console.log(this.props.comment,'this.props.comment?'),
() => console.log(this.props.region,'this.props.region?'))
}}>