这就是我想要做的:
constructor(props, store) {
props.store = store;
super(props);
};
我得到以下错误:
Uncaught :无法添加属性存储,对象不可扩展
我知道属性在ReactJS中是不可变的。那么,我如何克隆,然后扩大现有的属性呢?
更新1
一些背景:我基本上是在试图避免使用this._store
“私有”变量,并且希望将其放在props
中,因为值是在对象创建时已知的,不会更改。
我的类层次结构如下:
import SpeakersStore from ...;
class SpeakersViewController extends ItemsViewController {
constructor(props) {
super(props, SpeakersStore);
};
...
};
class ItemsViewController extends React.Component {
constructor(props, store) {
props.store = store;
super(props);
};
...
};
发布于 2016-02-16 08:43:24
您应该能够做到以下几点:
constructor(props, store) {
super({...props, store});
}
如果您所处的环境中对象扩展运算符( {...props}
构造)不可用,则可以使用Object.assign
constructor(props, store) {
super(Object.assign({}, props, {store});
}
但是,如果这是React组件的构造函数,请注意,React.Component
的构造函数的第二个参数是context
,您将无法得到所要的行为。
https://stackoverflow.com/questions/35437292
复制