【发布时间】:2020-11-08 02:14:42
【问题描述】:
我正在尝试列出用户在输入框中键入的查询状态。我在这里面临的问题是值是原始值后面的 1。我相信这可能是因为我使用 useState 和 setQuery 方法形成的查询状态的异步行为正在更新查询(如果我的猜测错误,请纠正我)。
让我知道如何解决这个问题。
let queryList = [];
function App() {
const [query, setQuery] = React.useState("");
const handleChange = e => {
setQuery(e.target.value);
queryList.push(query);
console.log(query);
};
return (
<div className="App">
<h1>Hello React</h1>
<input type="text" value={query} onChange={handleChange} />
<div className="query">
{queryList.map((x, id) => (
<li key={id}>{x}</li>
))}
</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(
<App />
rootElement
);
<script src="https://unpkg.com/react@16.8.6/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16.8.1/umd/react-dom.production.min.js"></script>
<div id="root"></div>
工作代码沙盒链接 - https://codesandbox.io/s/tender-mountain-qzgxf
另外,我需要有关在堆栈中设置反应代码的帮助 sn-ps。我在这里添加但它不起作用让我知道我在做什么 错误的。提前致谢。 :)
【问题讨论】:
-
除了
queryList.push(query)你还可以queryList.push(e.target.value)?
标签: javascript html css reactjs react-hooks