React TextArea组件-如何在ES6中使用getInitalState()
React TextArea Component - How to use getInititalState() in ES6?
我有一个相对简单的片段,它是用JSX/ES6编写的。
import React from 'react'
class TextArea extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<textarea defaultValue={this.props.text}></textarea>
<h3>{this.props.text.length}</h3>
</div>
)
}
}
TextArea.propTypes = {
text: React.PropTypes.string
}
export default TextArea;
由于该类不是用React.createClass
生成的,因此尝试添加getInitialState
会导致控制台出现红色大警告:
警告:getInitialState是在纯JavaScript类TextArea上定义的。这只支持使用React.createClass创建的类。你是想定义一个状态属性吗?
如何在ES6类中正确使用getInitialState()
?
类内构造函数需要设置state
属性
constructor(props) {
super(props);
this.state = { }
}
Example
对于state,您只需在constructor
中添加this.state = {}
。例如:
constructor (props) {
super(props);
this.state = {
placeHolder: 'Type your stuff here!'
};
}
对于默认道具,您将使用TextArea.defaultProps
。例如:
TextArea.defaultProps = {
placeHolder: this.state.placeHolder
};
这超出了您的类,就像您进行验证检查一样。
相关文章:
- ES6构造函数返回基类的实例
- 如何在下面的ES6循环中获得前面的文本
- es6 相当于下划线查找位置
- 如何在Javascript/ES6中的Aurelia浏览器应用程序中使用AWS S3
- ES6生成器:.next()的输入值
- 简单的ES6承诺问题-交换解决和拒绝参数
- 映射数组ES6时考虑空值
- @@(“at at”)在ES6 JavaScript中是什么意思
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- 使用Ember-cli项目中的ES6库
- JShint-.jshintrc中的ES6有esversion,但仍收到警告(使用atom)
- 在ES6 Promise中,我应该在解决/拒绝之前使用return吗
- Unexpected Transpile ES6>ES5
- 可以合并或嵌套ES6导入
- ES6 模板文字是否比 eval 更安全
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 数组值的排序以匹配另一个数组ES6
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- React TextArea组件-如何在ES6中使用getInitalState()