如何在ReactJS中动态地通过ref setState

时间:2017-02-25 19:23:56

标签: javascript reactjs react-jsx

我有这个

 handleChange(e){

    this.setState(
        update(this.state, {
            user: {
                $merge: {
                    firstname_user: this.firstname_user.refs.input.value,
                    lastname_user: this.lastname_user.refs.input.value,
                    password_user: this.password_user.refs.input.value,
                    newPassword_user: this.newPassword_user.refs.input.value,
                    confirmPassword_user: this.confirmPassword_user.refs.input.value,
                }
            }
        })
    )

 }

我只想做一个通用setState

因为目前,当我更改一个输入时,我的所有值都会被setState更改。

我试过这样的话,但我可以访问ref。密钥[e.target.name]有效,但使用相同的方法,该值不起作用。

    this.setState(
        update(this.state, {
            user: {
                $merge: {
                    [e.target.name]: this.[e.target.name].refs.input.value,
                }
            }
        })
    );

请问如何解决?

1 个答案:

答案 0 :(得分:1)

似乎是语法错误,请尝试这样做:

$merge: {
    [e.target.name]: this[e.target.name].refs.input.value,
}