如何使用嵌套属性的对象传播?

时间:2017-11-03 19:16:54

标签: javascript reactjs object react-redux

我试图在我的reducer(react-redux)中返回以下内容并且它给我一个语法错误:

return { ...state, loginForm.email: action.payload.email }

state = { loginForm: { email: '', password: '' } } so on

我安装了babel预设的0级和es2015。这很好用:

return { ..state, loginForm: action.payload }

3 个答案:

答案 0 :(得分:10)

因为这个键而得到错误:

loginForm.email

它不是有效的对象密钥。

像这样写:

return { 
    ...state, 
    loginForm: {
        ...state.loginForm,
        email: action.payload.email
    } 
}

答案 1 :(得分:1)

我想你想要这样的东西:

{ ...state, loginForm: { email: action.payload.email } }

答案 2 :(得分:1)

如果您使用的是深层嵌套对象,则其键入过多。要减少更复杂的代码,请尝试以下简单方法 newState.loginForm.email

let newState = {...state};
newState.loginForm.email = "myemail@email.com";
return newState;