我如何在 React 中制作一个非常基本的 useState 钩子?
How do i make a very basic useState hook in React?
我正在尝试在 React 中制作一个非常基本的 useState 挂钩,但无法弄清楚我做错了什么。
这是一个简单的 useState,它将段落内的文本更改为您在文本字段中写入的任何内容。
export default function Demo() {
const [value, setValue] = React.useState();
const handleValue= () => {
setValue(value)
}
return(
<>
<TextField onChange={handleValue} />
<p>{value}</p>
</>
)
}
该段落未呈现任何内容。我错过了什么吗?
您需要处理来自更改处理程序的值并使用它来更新您的状态
export default function Demo() {
const [value, setValue] = React.useState();
const handleValue= (e) => {
setValue(e.target.value)
}
return(
<>
<TextField onChange={handleValue} />
<p>{value}</p>
</>
)
}
您的 handleChange
函数当前正在将值设置为自身。您必须将其分配给从 TextField
.
获得的值
这是一个工作示例。
const {
useState,
useEffect,
Fragment
} = React;
function Demo() {
const [value, setValue] = useState();
const handleValue = ({target}) => {
setValue(target.value);
}
return <Fragment>
<input type="text" onChange={handleValue}/>
<p>{value}</p>
</Fragment>;
}
const el = document.querySelector("#root");
ReactDOM.render(<Demo/>, el);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.6/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.6/umd/react-dom.production.min.js"></script>
<div id="root"></div>
我正在尝试在 React 中制作一个非常基本的 useState 挂钩,但无法弄清楚我做错了什么。 这是一个简单的 useState,它将段落内的文本更改为您在文本字段中写入的任何内容。
export default function Demo() {
const [value, setValue] = React.useState();
const handleValue= () => {
setValue(value)
}
return(
<>
<TextField onChange={handleValue} />
<p>{value}</p>
</>
)
}
该段落未呈现任何内容。我错过了什么吗?
您需要处理来自更改处理程序的值并使用它来更新您的状态
export default function Demo() {
const [value, setValue] = React.useState();
const handleValue= (e) => {
setValue(e.target.value)
}
return(
<>
<TextField onChange={handleValue} />
<p>{value}</p>
</>
)
}
您的 handleChange
函数当前正在将值设置为自身。您必须将其分配给从 TextField
.
这是一个工作示例。
const {
useState,
useEffect,
Fragment
} = React;
function Demo() {
const [value, setValue] = useState();
const handleValue = ({target}) => {
setValue(target.value);
}
return <Fragment>
<input type="text" onChange={handleValue}/>
<p>{value}</p>
</Fragment>;
}
const el = document.querySelector("#root");
ReactDOM.render(<Demo/>, el);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.6/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.6/umd/react-dom.production.min.js"></script>
<div id="root"></div>