taro ui 小程序 textarea 组件不能连续输入

问题

textarea 不能连续输入字符

taro ui官网代码textarea示例

import Taro from '@tarojs/taro'
import { AtTextarea }  from 'taro-ui'
export default class Index extends Taro.Component {
  constructor () {
    super(...arguments)
    this.state = {
      value: ''
    }
  }
  handleChange (value) {
    this.setState({
      value
    })
  }
  render () {
    return (
      <AtTextarea
        value={this.state.value}
        onChange={this.handleChange.bind(this)}
        maxLength={200}
        placeholder='你的问题是...'
      />
    )
  }
}

若按照上述示例代码书写,则会出现每输入一个字符,就会出现输入框失去焦点现象。如图所示

解决

在textarea组件上添加 focus 属性即可

      <AtTextarea
        value={this.state.value}
        focus
        onChange={this.handleChange.bind(this)}
        maxLength={200}
        placeholder='你的问题是...'
      />

分析原因

因为每次onChange之后都调用setState,导致组件重新渲染,恢复组件初始状态就是没有取得焦点的状态。

@萍2樱释ღ( ´・ᴗ・` )