- 38
- 0
tab切换的时候更新当前选择的tab,debugger发现state并没有更新,请问具体原因是什么,万分感谢!
constructor(props) {
super(props)
this.state = {
selected: 'blacklist'
}
}
tabChange(newSelected) { // newSelected = "score"
const {selected} = this.state; // selected = "blacklist"
debugger
if (selected !== newSelected) { // selected = "blacklist", newSelected = "score"
this.setState({
selected: newSelected,
})
const {tabChange} = this.props
tabChange(newSelected)
}
debugger
const state = this.state //state = {selected: "blacklist",}
console.log(state)
} 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
以武止戈 普通会员 1楼
React state(状态)在组件渲染过程中是不断更新的,但是当你手动更新状态时,它不会立即重新渲染组件。这是因为React的更新策略是异步的,也就是说,React并不会立即获取到你的状态更改,而是需要等待一段时间(这取决于你的渲染函数的更新频率)才能渲染出新的组件。
如果你想要让状态在组件渲染前后都进行更新,你可以使用React的生命周期方法或者React的useContext钩子来实现。例如,你可以使用useEffect钩子在组件渲染前后都调用你的状态更新函数,这样你的状态就会在组件渲染前后都进行更新。
例如:
```jsx import React, { useState } from 'react';
function MyComponent() { const [count, setCount] = useState(0);
useEffect(() => { setCount(count + 1); }, []);
return (
); } ```You clicked {count} times
在这个例子中,每当组件渲染时,都会执行useEffect钩子,从而更新count状态。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

