当我尝试使用condtion渲染具有ref prop的组件时,react编译器表示它无法找到参考
中附带功能的组件这是容器组件的代码
def search_list(list_of_tuples):
for i in list_of_tuples:
print(i[0])
prices = [('AAPL',96.43),('IONS',39.28),('GS',159.53)]
search_list(prices)
正如你可以看到DetalleDeposito标签有一个ref属性但我想显示组件只要showDetailDeposito状态设置为True,那就是当我使用没有条件的组件时它工作,但是很快因为我把它放在它失败的状态。
希望您能告诉我如何在需要显示条件时依赖于条件来渲染具有ref属性的组件。感谢。
答案 0 :(得分:1)
我认为问题是因为您使用相同的点击处理程序onClickRow
将showDetailDeposito
设置为true,然后使用ref
来调用函数。但是,因为setState
是异步的,所以对ref
的调用失败,因为由于<DetalleDeposito />
为假而尚未装入该组件showDetailDeposito
。
要解决此问题,您可以尝试使用setState
中的回调来在设置状态后调用ref
函数。
this.setState({
showDetailDeposito: true
},
() => this.refs.detalle.getDataFromTable(row)
});