开始了ReactJS课程,在第4章我遇到了这个问题。我已经验证了几个帖子,但没有一个起作用。
setState()
是任何未重新渲染组件的实现。
const Content = () => {
const [name, setName] = useState('defs');
const handleNameChange = () =>{
setName('Julian');
}
return (
<main>
<p >
Hello {name}!
{console.log(name)}
</p>
<button onClick={handleNameChange}>Change Name</button>
</main>
)
}
我也尝试过
const [name, setName] = useState({default: "Dave"});
const handleNameChaneg = () => {
setName({...name,default:"Julian"});
从 console.log 我可以看到状态值正在发生变化,但我无法让组件重新渲染并显示更改。
问题更新:我在 playcode.io 上使用了相同的代码,并且 Web 视图更新发生了变化。更改不会更新到本地文件。我正在 Firefox Dev 版本中运行 Web 视图。
解决了!
我厌倦了在不同的浏览器中打开端口,发现它按预期工作。我花了 3 个小时尝试调试这个问题。
问题恰好是一个名为“Bionic Reader”的 Firefox 插件,我经常用它来阅读文章。它基本上强化了每个单词的前 2 个音节,使阅读更容易。这恰好与网站的重新渲染发生冲突。