如何在反应原生 mobx 中设置数组值?

Posted

技术标签:

【中文标题】如何在反应原生 mobx 中设置数组值?【英文标题】:How to set array value in react native mobx? 【发布时间】:2022-01-01 13:03:00 【问题描述】:

我有 favoriteStore,而且我是 mobx 的新手,我想将数组从 bookmarkapi 设置为 petList 数组,但我遇到了错误。

错误;

[Unhandled promise rejection: TypeError: undefined is not an object (evaluating '_this2.userId')]

代码;

import  observable, computed, action, makeObservable, configure  from "mobx";
import  bookmarkApi, petApi  from '../../constants/apiURL';
import AsyncStorage from '@react-native-async-storage/async-storage';

configure(
    enforceActions: "never",
)

class Favorites 
    userId = 0;
    petList = [];

    constructor() 
        makeObservable(this, 
            userId: observable,
            petList: observable,
            bookMarkList: action
        )
    

    bookMarkList = async () => 
        const value = await AsyncStorage.getItem('userId')
        if (value != null) 
            this.userId = value;
            console.log(this.userId);
        

        bookmarkApi.get('/').then(function (responseJson) 
            this.petList = responseJson.data.filter(data => data.userId == this.userId)
        )
    


export const favoriteStore = new Favorites();

【问题讨论】:

【参考方案1】:

回调函数丢失上下文,只需使用箭头函数进行bookmarkApi.get回调。

【讨论】:

以上是关于如何在反应原生 mobx 中设置数组值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应中的对象数组中设置对象数组的状态

如何在 jsonobject 中设置数组值

如何在结构数组中设置统一值?

如何在angular2中的数组中设置补丁值(更新嵌套值)?

如何在反应原生中过滤多个选择下拉字段中的数组值

如何在反应原生 IOS 中运行一次 GIF?