Javascript 如何在react中将json推送到Mobx的数组状态
我正在使用mobx对firebase进行React now。Javascript 如何在react中将json推送到Mobx的数组状态,javascript,reactjs,mobx,Javascript,Reactjs,Mobx,我正在使用mobx对firebase进行React now。 首先,有一个“projectState”作为空数组。 第二,从firestore获取数据后,将其推送到Mobx状态。 这是我的密码。 @observable projectState = { projects: [] }; projectGet = () => { firebase .firestore() .collection("projects") .doc(
首先,有一个“projectState”作为空数组。
第二,从firestore获取数据后,将其推送到Mobx状态。
这是我的密码。
@observable projectState = {
projects: []
};
projectGet = () => {
firebase
.firestore()
.collection("projects")
.doc("DkBFcdAOAWWl8Az")
.get()
.then(done => {
const projectsTotal = JSON.stringify(done.data());
this.projectState.projects.push(projectsTotal);
});
};
'done.data()'给出如下所示的json类型文件。{"id": "3", "title": "good"}
但是,当我使用“console.log”检查推送数据后的状态时。它给我的感觉如下
Proxy {0: "{"content":"asdf","id":"123","title":"yoman"}",
1: "{"content":"asdf","id":"123","title":"yoman"}",
Symbol(mobx administration): ObservableArrayAdministration}
如何将json数据推送到mobx状态 当您
const projectsTotal=JSON.stringify(done.data())时,您正在将返回的对象转换为字符串代码>
您可以将其更改为仅分配数据
@observable projectState = {
projects: []
};
projectGet = () => {
firebase
.firestore()
.collection("projects")
.doc("DkBFcdAOAWWl8Az")
.get()
.then(done => {
this.projectState.projects.push(done.data());
});
};
此外,从字符串化的值中,我看到Firebase返回一个对象文本,您可能需要将其转换为数组并分别推送每个项
您可以使用Object.values
获取值数组
@observable projectState = {
projects: []
};
projectGet = () => {
firebase
.firestore()
.collection("projects")
.doc("DkBFcdAOAWWl8Az")
.get()
.then(done => {
Object.values(done.data())
.forEach((value) => {this.projectState.projects.push(value)});
});
};
非常感谢你。但是当我在推送之后,使用console.log(this.projectState.projects)给出“Proxy{0:Proxy,Symbol(mobx管理):observearrayadministration}”。因此,在项目状态中没有像{“a”:“b}这样的纯json文件。你能帮我解决这个问题吗?我在我的代码中附加了你的代码。但结果是一样的。T.TAnd迭代后数组中的值是什么?再编辑一点就可以了。感谢您的洞察力。