Noi*_*art 5 android react-native
这可能只是一个 Android 6.0 错误。我在 Android 5.1.1 和 Android 7.0 中测试了下面的小吃,但没有发生。
每当用户键入“@”时,我都会尝试自动完成。我成功地做到了这一点,但是一旦我退格几次,本机端的值就变成了我以前从未有过的值。我已将案例简化为以下代码:
请尝试这里的小吃 - https://snack.expo.io/@noitsnack/what-the-heck---autocomplete-then-backspace-bug 或将代码复制并粘贴到新react-native init项目中。我在 RN 0.51 和 RN 0.54 中进行了测试。
Hi @Hi @foobar.Hi @fooba。Hi @foHi(这是错误,应该是Hi @foob)这是一个受控输入。我不知道为什么它会变成Hi @foHi第二个退格。如果我模糊然后在第 3 步之后它不会回来。
我在另外两个设备上试过,Android 7.0 和 Android 5.1.1,没有这个错误。它只发生在我的 Android 6.0 上。我认为这是一个依赖于操作系统的错误。有没有人对实际发生的事情有想法?这将帮助我了解如何在所有设备上解决此问题。
这真的是 RN 方面的错误吗?
我在此处以高清格式录制了此行为的截屏视频:
https://gfycat.com/RectangularAltruisticEuropeanfiresalamander
这是一个GIF:
![]()
代码(复制自世博小吃):
import React, { Component } from 'react';
import { StyleSheet, Text, View, TextInput } from 'react-native'
class FieldMentionable extends Component<Props, State> {
state = {
value: ''
}
render() {
const { value } = this.state;
return <TextInput onChange={this.handleChange} value={value} multiline />
}
handleChange = ({ nativeEvent:{ text }}) => {
const { value } = this.state;
if (text.endsWith(' @')) this.setState(() => ({ value:text + 'foobar' }));
else this.setState(() => ({ value:text }));
}
handleRef = el => this.input = el;
}
export default class App extends Component {
render() {
return (
<View style={styles.container}>
<FieldMentionable />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
paddingHorizontal: 100,
backgroundColor: '#F5FCFF',
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |