我想在 Redux 中更改我的兩個輸入的值,但由于某些原因它不起作用。
// My code in component
<Input label="name" value={initialUser.name} onChange={(e) => dispatch(onChangeInputAction(e))} name="name" />
<Input label="username" value={initialUser.userName} onChange={(e) => dispatch(onChangeInputAction(e))} name="userName" />
// code from redux
const initialUser: IInitialUser = {
name: '',
userName: '',
id: null,
};
case CustomersActionsEnum.ONCHANGE_INPUT:
const {value, name} = action.payload.currentTarget;
return {...state, initialUser: {...initialUser, [name]: value}};
//action creator
export const onChangeInputAction = (payload:React.FormEvent<HTMLInputElement>) => ({type: CustomersActionsEnum.ONCHANGE_INPUT, payload});
我讀到最好的主意是使用輸入中的名稱作為鍵,我遵循這條建議,但它不起作用。
當我在一個輸入中寫東西時的問題,一切都很好,但是當我開始在另一個輸入中寫時,第一個輸入變得清晰并且該值僅出現在第二個輸入中。
uj5u.com熱心網友回復:
看起來你正在state.initialUser覆寫const initialUser.
你可能打算傳播...state.initialUser
const initialUser: IInitialUser = {
name: '',
userName: '',
id: null,
};
case CustomersActionsEnum.ONCHANGE_INPUT:
const {value, name} = action.payload.currentTarget;
return {...state, initialUser: {...state.initialUser, [name]: value}};
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/526255.html
