首页 > 移动平台 > 详细

native-base中Input,Textarea等组件在ios平台下不能输入中文

时间:2018-08-23 22:48:37      阅读:373      评论:0      收藏:0      [点我收藏+]

在上文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平台下不能输入中文

原文:https://www.cnblogs.com/qiqi715/p/9526920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!