反应挂钩无法使用动态命名正确更新状态

拜利哈德温

我有一个react组件,用于向我的服务器发出登录请求。

它在模态中,我在其中使用Material UI

 <TextField
            onChange={handleChange}
            autoFocus
            name="email"
            margin="dense"
            id="email"
            label="Email Address"
            type="email"
            fullWidth
          />
           <TextField
           onChange={handleChange}
            autoFocus
            name="password"
            margin="dense"
            id="password"
            label="Password"
            type="password"
            fullWidth
          />

然后,我将具有处理程序状态以正确设置状态。

    const [state, setState] = React.useState({
        email: '',
        password: '',
        valid: false
    })

    const handleChange = (event) =>{
        event.preventDefault()
        console
        setState((state) => ({[event.target.name]: event.target.value, ...state}))
        if(state.email.length !== 0 && state.password.length !== 0){
            setState((state) => ({valid: true, ...state}))
        }
    }

但是,无论何时调用该函数,我都会注销syntheticEvent并获取正确的值,但是当我随后注销状态时,则未设置任何内容。我在使用带有钩子的完整状态对象方面经验不足,因此我无法真正解决问题。

该函数被调用三次后,name属性为null,并且出现此警告

This synthetic event is reused for performance reasons. If you're seeing this, you're accessing the property `target` on a released/nullified synthetic event. This is set to null. If you must keep the original synthetic event around, use event.persist().
丹尼斯瓦什

如警告所示,请尝试一次更新状态:

const handleChange = event => {
  event.preventDefault();
  const { name, value } = event.target;
  setState(state => {
    const { email, password } = state;
    const valid = email.length !== 0 && password.length !== 0;
    return { [name]: value, valid, ...state };
  });
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法通过自定义react挂钩更新状态

来自分类Dev

无法在反应挂钩中的setInterval内部更新状态

来自分类Dev

设置状态不会更新下拉复选框-使用挂钩

来自分类Dev

使用react挂钩从父组件更新子组件的状态

来自分类Dev

如何使用反应挂钩设置状态数组

来自分类Dev

反应挂钩:无法使用地图功能创建列表

来自分类Dev

反应挂钩,状态未正确更改

来自分类Dev

反应-useState挂钩访问状态

来自分类Dev

Flutter Bloc状态无法正确更新

来自分类Dev

TypeError:show.visible是不可迭代的。反应挂钩,状态不会更新

来自分类Dev

无法正确更新父对象状态

来自分类Dev

为什么我的反应状态无法正确更新?

来自分类Dev

反应useState坏了吗?状态未正确更新

来自分类Dev

动态导入反应挂钩

来自分类Dev

反应-下拉值无法动态更新

来自分类Dev

在状态更新时反应挂钩重新渲染错误

来自分类Dev

为什么状态钩子无法正确更新?

来自分类Dev

反应-不能在单次使用内正确更新状态

来自分类Dev

为什么我的挂钩状态无法正确更新?

来自分类Dev

使用挂钩设置反应状态时未定义

来自分类Dev

反应挂钩状态未更新

来自分类Dev

如何在钩子反应中正确更新状态?

来自分类Dev

Redux Reducer状态无法正确更新

来自分类Dev

什么是正确的语法来更新对象的反应挂钩状态

来自分类Dev

无法更新keyDown上的状态挂钩

来自分类Dev

反应状态挂钩问题

来自分类Dev

使用this.setState反应本机更新状态

来自分类Dev

反应-如何在不首先在状态中定义的情况下使用动态属性更新状态?

来自分类Dev

反应挂钩状态-不更新组件