Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查一下!useTracker meteor subscribe和findOne mongo存在isLoading和state_Javascript_Reactjs_Meteor_Async Await_Array.prototype.map - Fatal编程技术网

Javascript 检查一下!useTracker meteor subscribe和findOne mongo存在isLoading和state

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: [] };

我通常可以在使用isLoading渲染react组件时执行此操作,但是如果我尝试使用它来测试变量是否准备就绪,它会抱怨映射未定义,即使在控制台中,它肯定是我正在选择的数组值。isLoading有时返回未定义,我已经尝试检查isLoading是否正确!没有定义,所以我被困在这里

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
}
测试变量/属性是否已定义,然后我们使用
长度
,因为我们希望数组不为空