Javascript React-ref';if语句上的当前函数失败

Javascript React-ref';if语句上的当前函数失败,javascript,reactjs,if-statement,ref,Javascript,Reactjs,If Statement,Ref,我在React createRef中遇到了一个非常棘手的问题 我调用ref,它只在if/else语句的else分支中起作用 如果我删除if语句,ref就不起作用,如果函数转到if路径,它也不起作用 这里是一个片段 sendFetch("/api/cases?q=" + JSON.stringify(query_payload), "", "GET").then( data => { this.fetchedData =

我在React createRef中遇到了一个非常棘手的问题

我调用ref,它只在if/else语句的else分支中起作用

如果我删除if语句,ref就不起作用,如果函数转到if路径,它也不起作用

这里是一个片段

sendFetch("/api/cases?q=" + JSON.stringify(query_payload), "", "GET").then(
  data => {
    this.fetchedData = data;
    console.log(data.count + " results found")
    //populate the table with results
    if (data.count === "0" || data.status === "failed") {
      console.log("NOT FOUND")
      this.tableRef.current.loadTablewithNewData(false)
      //NOT WORKING
    } else {
      //reload the table component with the new data
      this.tableRef.current.loadTablewithNewData(data.context)
      //WORKING
    }
  }
)
当遵循IF路径时,或者我一起删除IF/else并立即调用ref函数时,REACT显示此错误 ×
未经处理的拒绝(TypeError):无法读取null的属性“loadTablewithNewData”

发出请求时,是否检查添加了引用的元素是否确实存在于DOM中

未处理的拒绝(TypeError):无法读取null的属性“loadTablewithNewData”

只有当您尝试访问DOM时,该元素不在DOM中时,才会出现此错误。 您在此处发布的代码按预期工作。在尝试直接在DOM中操作该元素之前,请检查该元素是否存在

if(this.tableRef.current){//如果它不存在,则为null
如果(data.count==“0”| | data.status==“失败”){
console.log(“未找到”)
this.tableRef.current.loadTablewithNewData(false)
}否则{
//使用新数据重新加载表格组件
this.tableRef.current.loadTablewithNewData(data.context)
}
}否则{
console.log('DOM中不存在表')
}
找到了它

出现这种情况的原因似乎是因为我渲染组件的方式。 我有一个条件语句,它在我第一次加载页面时呈现不同的组件。else语句起作用,因为只有在第一次未加载页面时才会遵循else路径


因此,if路径将尝试调用尚未呈现的DOM的ref。

谢谢。正确的。它似乎还不存在于DOM中