【发布时间】:2017-09-07 07:30:17
【问题描述】:
当我设置 this.props.setState() 时,它会修改我的 redux 存储的 initial_state 对象。
以下是我的 redux-store:
export const initial_state = {address:{firstName:"",lastName:""}}
export const store = createStore(reducers,Object.assign({},initial_state));
在我的组件内部
class AddressForm extends React.Component{
constructor(props){
super(props)
this.state = {address:this.props.address};
this.onAddressChange = this.onAddressChange.bind(this);
}
onAddressChange(e){
let address = Object.assign({},this.state.address);
address["firsName"].value = e.target.value;
this.setState({address:address})
}
render(){
console.log(this.props.address);
return(...having input field with onChange=
{this.onAddressChange}....)
}
}
function mapStateToProps(state){
return({
address:state.address
});
}
export default connect()(AddressForm);
根据控制台中的上述代码,我正在从 redux 商店打印this.props.address,这会将值打印为{firstName:"Typed in text box"}
实际上,我只是通过创建新地址对象并仅修改该状态值来修改组件的状态。
即使我没有调度任何 redux 事件...
但它仍然会修改我在 redux 商店中的 intial_state 为什么?
提前谢谢各位.....
【问题讨论】:
标签: javascript node.js reactjs ecmascript-6 react-redux