账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react state不更新更新
    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状态。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部