javascript - 在 React Native 应用程序中获取请求后,MobX 存储未更新

标签 javascript react-native react-hooks mobx mobx-react

我创建了一个带有异步获取功能的 MobX 存储。当我调用它时,我从 API 获取数据。我检查了控制台中的数据,它每次都会出现,但 MobX 商店没有改变它仍然是一样的。你能告诉我如何解决吗?

MobX 商店:

import { createContext } from 'react'
import { action, decorate, observable, computed, runInAction } from 'mobx'
import mapObjects from '../utils/mapObjects'

export class DataStore {
  data = null
  error = false
  loading = true


  async fetchData(url) {
    this.data = null
    this.loading = false
    try {
      console.log('TRY')
      const response = await fetch(url)
      const jsonResponse = await response.json()
      const obj = await mapObjects(jsonResponse)
      runInAction(() => {
        console.log('WRITE!!!')
        this.loading = false
        this.data = obj
      })
    } catch (err) {
      runInAction(() => {
        console.log(err)
        this.loading = false
        this.error = err
      })
    }
  }
}

decorate(DataStore, {
  data: observable,
  error: observable,
  loading: observable,
  fetchData: observable
})

export default createContext(new DataStore())

最佳答案

在您的 decorate(...) 调用中,您将 fetchData 设为 observable 而不是 action

关于javascript - 在 React Native 应用程序中获取请求后,MobX 存储未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57559110/

相关文章:

javascript - 为什么 getElementsByClassName 不起作用?

reactjs - React+Redux 自定义 Hook(仅在特定条件下更新)

javascript - 在 Next.js 版本 13 中,如果根布局必须始终是服务器端组件,如何将 prop 传递给根布局中的组件?

reactjs - React hooks 更新的状态未传递给函数

javascript - 返回具有未知键的对象数组的 typescript

javascript - 更改 jquery 中的变量时出现问题

javascript - jQuery/Ajax 在警报中正确发送 "data-"值,但无法将其附加到 php 中的特定 div 中

react-native - 我得到 "Unable to resolve module ` react

firebase - 如何使用 FCM 为亚马逊 Kindle FireOS 实现推送通知

reactjs - 每次选择/取消选择一行时,如何避免 react 原生 FlatList 重新渲染