native-base中Input,Textarea等組件在ios平臺下不能輸入中文
阿新 • • 發佈:2018-08-24
exti platform ould return 問題 next pla 輸入 exp
在上文react-native中TextInput在ios平臺下不能輸入中文已經解決。
但是在native-base
中Input和Textarea都存在這樣的問題。為了不要寫多個組件,封裝以下代碼:
import React from ‘react‘; import PropTypes from ‘prop-types‘; import { Platform, } from ‘react-native‘; import { Textarea, Input, } from ‘native-base‘; export const inputSupportLanguage = (WrappedComponent) => { class InputSupportLanguage extends React.Component { shouldComponentUpdate(nextProps) { const { value, defaultValue } = this.props; return Platform.OS !== ‘ios‘ || (value === nextProps.value && !nextProps.defaultValue) || (defaultValue === nextProps.defaultValue && !nextProps.value); } render() { return <WrappedComponent {...this.props} />; } } InputSupportLanguage.propTypes = { value: PropTypes.string, defaultValue: PropTypes.string, }; return InputSupportLanguage; }; export const NBInput = inputSupportLanguage(Input); export const NBTextarea = inputSupportLanguage(Textarea);
在相應的文件中就可以import 需要使用的組件,像使用native-base中Input和Textarea一樣去使用了。eg:
import {
NBInput,
NBTextarea,
} from ‘utils/inputSupportLanguage‘;
native-base中Input,Textarea等組件在ios平臺下不能輸入中文