native-base中Input,Textarea等组件在ios平台下不能输入中文
Posted 笔记库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了native-base中Input,Textarea等组件在ios平台下不能输入中文相关的知识,希望对你有一定的参考价值。
在上文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平台下不能输入中文的主要内容,如果未能解决你的问题,请参考以下文章