react-native TextInput 中文輸入bug 曲線救國
在新的Rn 中Textinput ios 輸入中文是輸不了的一直有bug
import React, { Component } from 'react';
import { Platform, TextInput, Text, View, TouchableHighlight,StyleSheet } from 'react-native';
export default class App extends Component<Props> {
constructor(props){
super(props)
this.state={
text:''
}
}
render() {
return (
<View style={styles.container}>
<TextInput
onChangeText={(text) => this.setState({text})}
value={this.state.text}/>
<Text>{this.state.text}</Text>
</View>
);
}
}
去跑一邊ios 就知道了 TextInput 是輸入不了中文的 很神奇
解決方法 ios 的TextInput
這裡提供一個思路 在onChangeText 不直接方法 快取起來 當是去焦點的時候才去執行onChangeText 雖然體驗不好 希望有人能提供其他方式這裡只能曲線救國處理
import React from 'react'
// // https://github.com/facebook/react-native/issues/18403
const withHandleHandWritingTextInput = (WrappedComponent) => {
class HandleHandWritingTextInput extends React.PureComponentnent {
constructor(props) {
super(props)
this.tempText = this.props.value
}
render() {
const { onChangeText, onBlur, ...rest } = this.props
return (
<WrappedComponent
onChangeText={(text) => {
this.tempText = t = text
}}
onBlur={(e) => {
if (onChangeText) {
onChangeText(xt(this.tempText)
)
}
if (onBlur) {
onBlur(e)
}
}}
{...rest}
/>
)
}
}
return HandleHandWritingTextInput
}
export default withHandleHandWritingTextInput
然後建立一個自定義的TextInput
import { Platform, TextInput, } from 'react-native';
import withHandleHandWritingTextInput from './withHandleHandWritingTextInput'
export default MyTextInput == Platform.OS == 'ios' ? withHandleHandWritingTextInput : TextInput
這段程式碼 還沒在ios上跑 寫程式碼的時候是在window上 但是答題思路是上面這個樣子 提供快取 onChangeText 在是去焦點的時候去賦值 希望有人能更好的方式去解決這個問題
方案2
https://github.com/facebook/react-native/pull/18456/files
這個直接改library 裡面的程式碼效果比上面好
相關文章
- 程式碼BUG之曲線救國
- 快充曲線救國 Quick Charge進入3.0時代UI
- 曲線救國:webpack打包優化黑科技Web優化
- react輸入框輸入中文bugReact
- react-native TextInput 使用React
- TextInput iOS中文輸入推掉鍵盤之後如何正確獲取內容iOS
- 解決 React 中的 input 輸入框在中文輸入法下的 bugReact
- 電競出海越南的一百種方式:有人電競遊戲出海,有人開網咖曲線救國遊戲
- httprunner3.x 這個問題能解決嗎?或者求曲線救國的辦法HTTP
- 曲線救國之修復騰訊 X5 核心檔案上傳的相容性問題
- 曲線救國,解決spring-boot2.0.6中webflux無法獲得請求IP的問題SpringbootWebUX
- manjaro中文輸入法JAR
- CentOS 7 輸入中文 & 安裝搜狗輸入法CentOS
- Ubuntu下搜狗輸入法無法輸入中文Ubuntu
- linux系統編碼問題:vi不能輸入中文,ssh遠端連線終端不能輸入中文,中文顯示亂碼等Linux
- ubuntu新增中文輸入法Ubuntu
- 從一次輸入框無法輸入的bug,談如何限制輸入框輸入型別型別
- win10系統下中文輸入法無法輸入中文如何解決Win10
- 如何在MySQL中輸入中文MySql
- git bash輸入中文問題Git
- Ubuntu安裝中文輸入法Ubuntu
- centos安裝中文輸入法CentOS
- 機器學習中的PR曲線和ROC曲線機器學習
- [vue] 表單輸入格式化,中文輸入法異常Vue
- Ubuntu中文設定與安裝中文輸入法Ubuntu
- lightroom中文基礎教程:色調曲線功能講解OOM
- linux設定中文輸入法Linux
- emacs不能使用中文輸入法Mac
- Elementary OS安裝中文輸入法
- linux下的中文輸入法Linux
- ubuntu下安裝中文輸入法Ubuntu
- p/l sql輸入中文後變???SQL
- Ubuntu 安裝谷歌中文輸入法Ubuntu谷歌
- 直播小程式原始碼,react-native自定義文字輸入框原始碼React
- centos安裝中文支援以及中文輸入法scim - CentOSCentOS
- elementUI 的 input無法輸入bug解決UI
- webGL入門-四階貝塞爾曲線繪製Web
- win10輸入法中文輸入沒有待選詞恢復方法Win10