我有一个使用反应导航的多屏应用程序,并将一个从CameraScreen传递到HomeScreen的道具称为“条形码”,如下所示:
takePicture() {
//Redirect
this.props.navigation.navigate('Home', {barcode: true});
}
来源:https://reactnavigation.org/docs/en/params.html
在主屏幕上,我正在侦听componentDidMount中的道具更新,如果条形码为true,请使用setState渲染新组件,如下所示:
componentDidUpdate(){
if(this.props.navigation.getParam('barcode') === true) {
this.setState({
barcodeActive: true
})
}
}
我从在componentDidMount中调用setState收到错误Invariant Violation: Maximum update depth exceeded
。我知道它处于无限循环中,没有间断。
当该道具传递给setState时,我该如何听?或者有什么更好的方法来实现我的追求?
答案 0 :(得分:1)
您可以使用np.stack((a1,a2,a3), axis=1)
# array([[77, 23, 0],
# [72, 27, 1],
# [81, 19, 0],
# [57, 42, 1],
# [84, 16, 0],
# [60, 39, 1],
# [97, 2, 1],
# [54, 45, 1],
# [52, 48, 0],
# [86, 14, 0]])
参数,然后比较prevProps
的当前值和先前值。如果它们不相同,则可以更新状态。
barcode