对状态进行反应onclick通过按钮API ID
我有一个简单的 aip,其中包含一个具有 4 个不同 id 的数组。在 React 中,我制作了一个
,其中每个 id 都有一个按钮。当我单击按钮时,我想将 state.id
和 console.log
更改为具有新的特定按钮 id 的新 state.id
来自 api 的值(最终我想根据我按下的按钮更改一些渲染)。我需要按两次其中一个按钮才能进行控制台。记录我想要的id,我需要在第一次单击时更改状态(对某些新渲染进行一些更改)。
I have a simple aip with an array with 4 different ids. In react I've made an <ul>
with a button for each of the ids. When I click the button, I want to change the state.id
and console.log
the new state.id
with the new specific button id value from the api (eventually I want to change some render depending on the button I press).
I need to press two times on one of the buttons to console.log my desired id, I need the state to change on the first click (to make some changes to some new render).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从
尝试在渲染函数中登录此。在第一次单击后,您将看到它实际发生的情况 - 但是您的日志在状态更新之前显示了它。
From the React docs for setState()
Try logging this.state inside your render function and you will see how it actually IS happening after the first click - but your log is displaying it before the state updates.
setState() :setState() 并不总是立即更新组件。它可能会批量更新或推迟更新。这使得在调用 setState() 后立即读取 this.state 成为一个潜在的陷阱。相反,请使用 componentDidUpdate 或 setState 回调 (setState(updater,callback)),其中任何一个都保证在应用更新后触发。
setState() : setState() does not always immediately update the component. It may batch or defer the update until later. This makes reading this.state right after calling setState() a potential pitfall. Instead, use componentDidUpdate or a setState callback (setState(updater, callback)), either of which are guaranteed to fire after the update has been applied.