我不知道为什么会出错。 我应该从local-mongodb库中获取我未来的新postIt的新_id并运行新页面,但应位于“ this.props.onInsertNewPost(idPost);”中它得到一个错误(无法读取属性idPost未定义)。 onInsertNewPost调用redux函数,该函数在initialState中设置“ id”。 我尝试在componentWillMout中使用绑定(this.idPost = this.idPost.bind(this))调用idPost()函数,但遇到了同样的问题
componentWillMount(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
db.loadDatabase(err=>{
var obj={
year : this.state.year,
month : this.state.month,
day : this.state.day,
houre : this.state.houre,
minute : this.state.minute,
text : '',
isSelected : false,
imagesStored : []
};
db.insert(obj,function(err,doc){
let docDoc=JSON.stringify(doc);
let parseDoc=JSON.parse(docDoc);
console.log(parseDoc._id);
idPost=parseDoc._id;
this.props.onInsertNewPost(idPost);
console.log('create nuovo post');
resolve('componentDidMoutnewPostit');
});
});
},100);
});
};
答案 0 :(得分:0)
我认为发生此问题是因为idPost是全局的。 如果您将parseDoc._id直接传递到onInsertNewPost函数中,它将起作用。
componentWillMount(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
db.loadDatabase(err=>{
var obj={
year : this.state.year,
month : this.state.month,
day : this.state.day,
houre : this.state.houre,
minute : this.state.minute,
text : '',
isSelected : false,
imagesStored : []
};
db.insert(obj,function(err,doc){
let docDoc=JSON.stringify(doc);
let parseDoc=JSON.parse(docDoc);
console.log(parseDoc._id);
this.props.onInsertNewPost(parseDoc._id);
console.log('create nuovo post');
resolve('componentDidMoutnewPostit');
});
});
},100);
});
};