Reactjs Alt:getState()不';t返回类实例
我尝试在Alt Store中返回类实例,但它总是只返回Javascript对象,而不是类实例。这是getState()的默认行为吗?如何返回类实例Reactjs Alt:getState()不';t返回类实例,reactjs,alt,Reactjs,Alt,我尝试在Alt Store中返回类实例,但它总是只返回Javascript对象,而不是类实例。这是getState()的默认行为吗?如何返回类实例 import alt from '../alt'; import ScheduleActions from '../actions/ScheduleActions.js'; import ScheduleApiUtils from '../utils/ScheduleApiUtils'; class ScheduleStore { constr
import alt from '../alt';
import ScheduleActions from '../actions/ScheduleActions.js';
import ScheduleApiUtils from '../utils/ScheduleApiUtils';
class ScheduleStore {
constructor() {
this.state = {
test: new String("test")
}
console.log(this.state.test instanceof String); // return true
}
static getSchedules() {
console.log(this.getState().test instanceof String); // return false
}
}
export default alt.createStore(ScheduleStore, 'ScheduleStore');
这不是特定的反应。这就是javascript的操作方式。尝试打开console并询问以下类型:
typeof "test"
typeof {}
typeof []
typeof true
typeof false
如果要检查javascript中的类型,您可能需要首先查看,在javascript中,字符串文字原语和
字符串
类不是同一类型。换句话说,字符串文字不是字符串的实例:
console.log("test" instanceof String) // false
console.log(new String("test") instanceof String) // true
其次,从Alt文档中,它返回数据的副本:
调用[getState
]后,它将执行商店状态的浅拷贝,
这样,您就不会意外地覆盖/更改任何商店的
国家
我不知道Alt是如何在内部进行复制的,但我假设它没有使用new String()
来复制字符串值,而它执行复制的方式是将它们转换为字符串文本类型
使用newstring()
代替字符串文本在JavaScript中不是很常见的做法 他使用的是instanceof
而不是typeof
。