【问题标题】:How to Queuing Items to be added into React Native Context's State如何将要添加到 React Native Context 状态的项目排队
【发布时间】:2021-06-28 17:37:13
【问题描述】:

我正在尝试使用 React Native Context 在我的应用 UI 中显示类似 console.log 的日志。我在上下文中有这个代码:

...
const [logs, setLogs] = useState<string[]>([]);
const addToConsoleLogs = (log: string) => {
  setLogs([...logs, log]);
};
...

当我在获取之前和之后调用该函数时在屏幕上:

...
doFetch = () => {
  addToConsoleLogs('Start..');
  await fetch(...);
  addToConsoleLogs('Done.');
}
...

没有按预期工作,因为这部分>>setLogs([...logs, log]);,之前的日志状态值在第二次调用中似乎不是实际的,因为我认为这些调用在同一个线程中并且它们是异步的。太糟糕了,我们不能把await 放在setLogs() 前面。在 React Native Hooks 机制中模仿 console.log 的最佳方法是什么?

【问题讨论】:

    标签: javascript reactjs typescript react-native react-hooks


    【解决方案1】:

    我们可以使用状态回调:setLogs(logs =&gt; [...logs, log]),所有调用都在等待回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 2020-09-25
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多