Javascript React-ref';if语句上的当前函数失败
我在React createRef中遇到了一个非常棘手的问题 我调用ref,它只在if/else语句的else分支中起作用 如果我删除if语句,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 =
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中