对状态进行反应onclick通过按钮API ID

发布于 2025-01-17 20:31:14 字数 514 浏览 1 评论 0原文

我有一个简单的 aip,其中包含一个具有 4 个不同 id 的数组。在 React 中,我制作了一个

    ,其中每个 id 都有一个按钮。当我单击按钮时,我想将 state.idconsole.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).

enter image description here

enter image description here

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

静水深流 2025-01-24 20:31:14

将setState()视为请求,而不是立即命令
更新组件。为了更好地感知性能,React可能
延迟它,然后在单个通过中更新几个组件。反应
不保证立即应用状态更改。

尝试在渲染函数中登录此。在第一次单击后,您将看到它实际发生的情况 - 但是您的日志在状态更新之前显示了它。

From the React docs for setState()

Think of setState() as a request rather than an immediate command to
update the component. For better perceived performance, React may
delay it, and then update several components in a single pass. React
does not guarantee that the state changes are applied immediately.

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.

一身软味 2025-01-24 20:31:14

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文