我无法使用setState。我的代码看起来像:
const FormComp = () => {
const [reader, setReader] = React.useState(0);
//rest of the code
};
const Ques1 = () => {
return (
<>
<button onClick={() => {
this.setState({ reader: "1" });
}}>Click</button>
</>
)
};
这只是代码的一个简短版本。我在这方面遇到了问题。请有人帮我。此代码在同一文件中。更新:尝试了setReader
,但它抛出一个错误,称setReader
未定义
当您使用React.useState
时,您不执行this.setState
,在本例中,您只执行:
<button onClick={() => {
setReader("1");
}}>Click</button>
应该这样使用:
import React from 'react';
function App() {
const [reader, setReader] = React.useState(0);
const FormComp = () => {
//rest of the code
return <div>Clicked {reader} times</div>
};
const Ques1 = () => {
return (
<button onClick={() => setReader(reader+1)}>Increase</button>
)
};
return (
<div className="App">
<FormComp />
<Ques1 />
</div>
);
}
export default App;
您可以在setReader函数中设置您想要的任何值。
因为您使用的是useState钩子,所以应该调用setReader
而不是this.setState
。
当您使用react钩子和功能组件时,您可以(暂时(放弃有关this.setState 的概念
要将this.setState({ reader: "1" })
用于const [reader, setReader] = React.useState(0);
,请使用State Hook。您应该使用setReader(1)
或setReader("1")
(根据您的旧"this.setState({reader: "1"})
"(
点击按钮类似:
<button onClick={() => setReader(1)}>
Click
</button>
您的代码中存在两个问题。
- 您使用的是
setState
,而使用的是反作用钩子useState
useState
正在一个组件中使用,试图在另一个组件上访问它
所以,决定你在哪里需要它,或者你想把它作为道具和/或提升状态?
使用:
onClick={() => setReader(1)}