Javascript 检查一下!useTracker meteor subscribe和findOne mongo存在isLoading和state
我通常可以在使用isLoading渲染react组件时执行此操作,但是如果我尝试使用它来测试变量是否准备就绪,它会抱怨映射未定义,即使在控制台中,它肯定是我正在选择的数组值。isLoading有时返回未定义,我已经尝试检查isLoading是否正确!没有定义,所以我被困在这里Javascript 检查一下!useTracker meteor subscribe和findOne mongo存在isLoading和state,javascript,reactjs,meteor,async-await,array.prototype.map,Javascript,Reactjs,Meteor,Async Await,Array.prototype.map,我通常可以在使用isLoading渲染react组件时执行此操作,但是如果我尝试使用它来测试变量是否准备就绪,它会抱怨映射未定义,即使在控制台中,它肯定是我正在选择的数组值。isLoading有时返回未定义,我已经尝试检查isLoading是否正确!没有定义,所以我被困在这里 const { leadsBuilder, isLoading } = useTracker(() => { const noDataAvailable = { leadsBuilder: [] };
const { leadsBuilder, isLoading } = useTracker(() => {
const noDataAvailable = { leadsBuilder: [] };
if (!Meteor.user()) {
return noDataAvailable;
}
const handler = Meteor.subscribe("leadsBuilder");
if (!handler.ready()) {
return { ...noDataAvailable, isLoading: true };
}
const leadsBuilder = LeadsBuilderCollection.findOne({ _id: params._id });
return { leadsBuilder };
});
if (!isLoading && leadsBuilder) {
let stateReplace = [];
leadsBuilder.inputs.map((leadInput, i) => {
stateReplace.push({ id: i, text: leadInput.name });
});
}
您正在测试
leadsBuilder
是否真实,但在leadsBuilder
的属性上调用.map
您应通过以下方式更换您的状况:
if(!isLoading && leadsBuilder?.inputs?.length) {
//your code
}
?
测试变量/属性是否已定义,然后我们使用长度
,因为我们希望数组不为空