標籤:puts default inpu ops 解決 support == tla util
在上文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平台下不能輸入中文