gre*_*reW 5 react-native react-native-android
嘿,我正在尝试创建一个事件,该事件将在键盘出现时触发,但该功能触发了不止一次,我不知道为什么..
import React, { Component } from 'react';
import { Keyboard, Alert, View, TextInput } from 'react-native';
export default class App extends Component {
constructor(props: any) {
super(props);
this.kbDidShowListener = Keyboard.addListener('keyboardDidShow', () => Alert.alert('keyboard is up'));
}
componentWillUnmount() {
this.kbDidShowListener.remove();
}
render() {
return (
<View style={{ marginTop: 30 }}>
<TextInput />
</View>
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是示例的博览会(您将多次看到警报) https://snack.expo.io/H1DHaIdgM
ps我在Android上工作。
谢谢!
渲染函数不会只运行一次。通常也会在计算状态和道具时刷新多次。这样就可以解释这个问题了。
如果您想确定的话,请尝试在渲染方法中添加一个控制台,以查看数字是否匹配。
其实我在想另外一件事。尝试将代码移至 componentWillMount 或 componentDidMount
componentDidMount(){
this.kbDidShowListener = Keyboard.addListener('keyboardDidShow', () => Alert.alert('keyboard is up'));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |