javascript - 如何在ReactJS中通过ref动态设置State

标签 javascript reactjs

我有这个

 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,
                }
            }
        })
    );

请问如何解决?

最佳答案

似乎是语法错误,请尝试以下操作:

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

关于javascript - 如何在ReactJS中通过ref动态设置State,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42460591/

相关文章:

reactjs - 使用 Kubernetes 部署并通过 Ingress 连接后 SSE 中断

javascript - 如何在单个组件中渲染多个 Prop ,然后将这些 Prop 传递给 React 中的子组件

javascript - React Native 和 web3 v1.0.0

javascript - react : how to use inline styling while mapping through a render

javascript - ES6 类属性文档

javascript - 无法在父组件中运行子组件方法

reactjs - React 组件层次结构中的 componentDidMount 顺序

javascript - 跟踪指令中的代码脚本

javascript - 在 React/Redux 中管理兄弟组件之间的滚动状态

javascript - 对象不支持属性或方法 'delete' ie11 (reactjs)