所有
我是React的新手,我想知道是否有人可以在createClass
和extends Component
之间进行比较
第一个问题是我们需要React.Component的原因,因为我们已经有了createClass?
其次,具体的是:
1。在extends Component
模式下this.state是什么样的:我尝试在构造函数()中使用this.state,但是作为undifined
失败,这是否意味着我必须构建{{1通过给它整个状态树来自己?
这两种模式都有一个问题:
如果我想将setState()与复杂对象(具有嵌套数据结构)一起使用,我怎么才能仅根据部分进行更新,例如,说状态如下:
this.state
我怎样才能使用setState()更新高度?我应该像
一样使用它吗?State = {
title: "",
attrs: {
size: {
width:"100px",
height: "100px"
}
}
}
由于
答案 0 :(得分:1)
React.createClass是定义反应组件的旧方法。 class
当时并不存在于javascript中,所以这就是React实施的'类';
import React, {Component} from 'react';
class ReactComponent extends Component
是基于es2015类定义反应组件的更新方法。
无论您如何定义组件,状态都应该以相同的方式运行。
在构造函数中,您应该能够定义this.state
。
我会研究Flux架构并实现Redux或AltJS来帮助实现数据流架构。
在你的州,如果你有一个对象:
q = {
title: "Test",
body : "Test123"
}
并希望更新标题...您必须执行以下操作:
var x = this.state.q;
x.title = "New Title";
this.setState({ q: x });
您无法修改状态中的对象属性。您必须使用整个新对象更新属性和setState。
答案 1 :(得分:1)