反应环境不是通过1/2字段



所以我正在学习如何使用React上下文,我发现这个例子非常有用:https://codesandbox.io/s/login-flow-w-react-context-api-p9j96?file=/src/Login/index.js

由于useSetState不能再使用,我试图从react导入useState,但它不起作用,useState只传递密码到登录功能,如图所示:

https://codesandbox.io/s/login-flow-w-react-context-api-forked-njs1kt?file=/src/Login/index.js

控制台也抛出了这个错误:

组件将受控输入更改为非受控输入。这可能是由于值从已定义变为未定义造成的,这是不应该发生的。决定在组件的生命周期内使用受控或非受控输入元素。

无论如何我可以解决这个问题?非常感谢大家,节日快乐!!

我相信我已经解决了你的问题。你可以查看下面的链接

https://codesandbox.io/s/login-flow-w-react-context-api-forked-l3x24v?file=/src/Login/index.js

如果你有对象或数组处于状态,你应该这样更新:

setState((prevState)=>{return {...prevState,property:value}})

我也建议你更新你的反应到17或以上。

还有一个问题叫做"事件池">

https://reactjs.org/docs/legacy-event-pooling.html

这就是为什么我使用e.persist();

最新更新