#独家
setTableData这样的设置状态的方法是同步还是异步的呢?

2023-07-22 0 2,532

我在使用useState的时候,没有设置上state还是怎么的,打印state是空数组:

  const {projs, getProjs } = useStore()

  const [tableData, setTableData] = useState<DispProjs[]>([]);

  useEffect(() => {
    
    console.log('before: ', projs)   // 有数据: [{...}]
    setTableData(projs);
    console.log('after ', tableData)  // 无数据:[]
  }, [projs]);

对此有几个问题:
1、setTableData这样的设置状态的方法是同步还是异步的呢?
2、请问是否有方式可以看到状态实时的情况。比如浏览器有redux的devtool,但是在electron是否可以什么方式展示呢?

回复:

  1. useState 和 useEffect 都是异步的,所以 setTableData 执行后不能立即获取到状态更新后的值。
    如果想看到更新可以尝试 useEffect(() => { console.log(‘before: ‘, projs); setTableData(projs); }, [projs]); useEffect(() => { console.log(‘after: ‘, tableData); }, [tableData]);
  2. Electron 内置了浏览器工具,在创建 windows 实例的时候配置就行 const { app, BrowserWindow } = require(‘electron’); function createWindow() { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { devTools: true, // 配置开发者工具 }, }); win.loadFile(‘index.html’); } app.whenReady().then(createWindow);
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 setTableData这样的设置状态的方法是同步还是异步的呢? https://www.jkxiazai.com/2171.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务