React safari textarea 无法输入 不是约束表单

<form onSubmit={this.addTeamList}>
        <div className={cx(styles.group)}>
          <div className={cx(styles.babel, styles.male)}>男生</div>
          <textarea className={styles.textarea} placeholder="某 某 某" ref='maleValue' defaultValue={maleStr}></textarea>
        </div>
        <div>
          <div className={cx(styles.babel, styles.female)}>女生</div>
          <textarea className={styles.textarea} placeholder="某 某 某" ref='femaleValue' defaultValue={femaleStr}></textarea>
        </div>
        <button className={styles.button}><i className="fa fa-check"></i></button>
      </form>

这样的jsx,不是约束表单,但是在safari中,textarea无法输入,不知道为什么

阅读 7k
1 个回答

图片描述

看图片,在React中textarea要像这样:
<textarea defaultValue={this.yourValue} />
而不是你上面的<textarea defaultValue={this.yourValue}> </textarea>
这样的例子还有input标签 在html5规范中可以这样 <input value="defaultvalue" >不闭合标签,但是在React中必须要把它闭合,也就是<input defaultValue="yourdefaultvalue" /> 这也许就是JSX的特性?

以上,个人观点,如有错误欢迎指正。

图片描述
图片描述
我试了一下如果textarea给了defaultValue属性然后还<textarea ></textarea>这样的话是会报错的,你那里一开始像你图片那样设置的话没有报错?
我试了一下想像这样<text areadefaultValue={this.yourValue} /> chrome&firefox&IE8+都没问题,可以更改textarea里面的值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏