onLayout会多次触发

onLayout会多次触发,layout,react-native,redux,react-native-android,Layout,React Native,Redux,React Native Android,这是我的代码: <View onLayout={(event) => { console.log('Inside'); this.props.setDropZoneValue(event.nativeEvent.layout); }} style={styles.borderView}> ...... </View> { console.log('Inside'); this.props.setDropZoneValue(event.nativeE

这是我的代码:

<View onLayout={(event) => {
    console.log('Inside');
    this.props.setDropZoneValue(event.nativeEvent.layout);
}}
style={styles.borderView}>
......
</View>
{
console.log('Inside');
this.props.setDropZoneValue(event.nativeEvent.layout);
}}
style={style.borderView}>
......
在安卓系统上,这会出现很多次,而且应该只会出现一次。在ios上运行非常完美

我正在研究react with redux

该行:

This.props.setDropZoneValue(event.nativeEvent.layout)

这是一个修改减速器的操作,因此会导致再次渲染视图并重新进入onLayout,从而导致无限循环


有人知道这种情况只发生在android上的原因吗?

简单的解决方案是,如果onLayout事件已经触发或未触发,则设置一个变量,并在运行该函数之前进行检查。但是您还应该弄清楚它为什么要重新运行onLayout事件。我的解决方案确实是暂时的。嗨@BünyaminBennyGenel,是的,现在这是我的临时解决方案,但如果我的老板看到这样的代码,他会杀了我。你有没有找到解决这个问题的办法?