當我設置修改my redux的this.props.setState()
時,會存儲initial_state對象。React js setState({})直接修改redux中的數據存儲初始對象
以下是我的終極版店:
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);
按照上面的代碼在控制檯我正在打印從終極版商店this.props.address
這個打印值{firstName:"Typed in text box"}
其實我只是在組件的狀態下通過創建新的地址對象和修改只有該狀態val UE。
即使我不分派任何與終極版事件......
但仍修改我intial_state在終極版店爲什麼呢?
在此先感謝球員.....
但在'connect',尚未明確說明自己'mapStateToProps',雖然他寫了它。 –
@AjayGaur我在說'this.props.address}'最初未定義,因爲他沒有通過'mapStateToProps'連接' –
我沒有得到。我不知道他是如何運行代碼的。在地址[「firsName」] .value = e.target.value;',它應該給他錯誤,因爲'不能讀取未定義的值 –