将数据数组设置为 mobx 数组显示代理对象
set array of data into mobx array show proxy objects
我正在使用 react js 和 mobx,我从 api 获取数据。
我得到的数据是对象数组。
当我将数据设置为 mobx 变量时,我会看到代理对象数组(不确定代理说的是什么)。我正在尝试将从 api 获得的对象数组设置为 mobx 变量。
我的店铺
class UserStore {
@persist @observable token = null
@observable tasks = []
@observable done = false
@persist @observable email = ''
constructor() {
}
@action
getTasks = async () => {
try {
let response = await Api.getTasks()
console.log('getTasks',response.tasks)
this.tasks = response.tasks
console.log('my new tasks',this.tasks)
} catch (e) {
console.log(e)
}
}
正如您在第一个块 ('black') 中看到的那样,我从 api 获得数据,然后我将 respnse.tasks 设置为 this.tasks。
this.tasks = response.tasks
console.log('my new tasks',this.tasks)
这取决于你想如何观察数据。
"I'm trying just to set the array of objects I get from api into mobx variable"
并不是您的最终目标。
如果您希望观察员:
选项a:当数组引用改变时做出反应
= 不关心数组中的值。
使用 @observable.ref tasks
.
option b: 当数组中每个值的引用改变时做出反应
= 不关心单个对象的属性。
使用 @observable.shallow tasks
.
选项 c:对单个对象的属性也有反应
= 让一切都可观察,引用和对象属性
像你一样使用 @observable tasks
。
如评论中所述,mobx5 正在使用代理,某些行为可能与以前的版本不同。
更多信息:Mobx arrays, Mobx decorators, shallow observability
注意:如果这对您没有帮助,您需要提供更多详细信息,例如您的 React 组件代码。
您可以将代理转换为 JS:
import { toJS } from 'mobx'
// example
toJS(response)
我正在使用 react js 和 mobx,我从 api 获取数据。 我得到的数据是对象数组。 当我将数据设置为 mobx 变量时,我会看到代理对象数组(不确定代理说的是什么)。我正在尝试将从 api 获得的对象数组设置为 mobx 变量。
我的店铺
class UserStore {
@persist @observable token = null
@observable tasks = []
@observable done = false
@persist @observable email = ''
constructor() {
}
@action
getTasks = async () => {
try {
let response = await Api.getTasks()
console.log('getTasks',response.tasks)
this.tasks = response.tasks
console.log('my new tasks',this.tasks)
} catch (e) {
console.log(e)
}
}
正如您在第一个块 ('black') 中看到的那样,我从 api 获得数据,然后我将 respnse.tasks 设置为 this.tasks。
this.tasks = response.tasks
console.log('my new tasks',this.tasks)
这取决于你想如何观察数据。
"I'm trying just to set the array of objects I get from api into mobx variable"
并不是您的最终目标。
如果您希望观察员:
选项a:当数组引用改变时做出反应
= 不关心数组中的值。
使用@observable.ref tasks
.option b: 当数组中每个值的引用改变时做出反应
= 不关心单个对象的属性。
使用@observable.shallow tasks
.选项 c:对单个对象的属性也有反应
= 让一切都可观察,引用和对象属性
像你一样使用@observable tasks
。
如评论中所述,mobx5 正在使用代理,某些行为可能与以前的版本不同。
更多信息:Mobx arrays, Mobx decorators, shallow observability
注意:如果这对您没有帮助,您需要提供更多详细信息,例如您的 React 组件代码。
您可以将代理转换为 JS:
import { toJS } from 'mobx'
// example
toJS(response)