myVar = this.state.value;
console.log(myVar); //some string e.g "my string"
console.log(typeof myVar); // string
var test = " string part";
passString = test + myVar;
console.log(passString); //string part my string
clonedChild = React.cloneElement(child, {newProp: myVar})
在克隆的孩子身上,我看到了newProp,但它是"字符串partnull"
它必须是某种范围问题...
更新:
这是实际的JavaScript代码;
(configDataX = this.state, console.log("In App Component. Rendering with state", configDataX), newChildren = React.Children.map(this.props.children, (function(_this) {
return function(child) {
return React.cloneElement(child, {
foobx: true,
appData: configDataX
});
};
})(this))));
这是由fluxxor emit("更改")事件引发的。这是在Ajax请求的成功回调中引发的。 StoreWatchMixin正确地听到此事件并将获得的值设置为组件的状态。状态更改和渲染发生。上面的代码在render()方法中。 configDataX的console.log显示我们已经从Ajax调用中获取了值并将它们设置为状态。调试到map函数configDataX仍然是正确的。但是克隆的子节点上的值不是在Ajax请求中设置的值 - 它是在Ajax请求之前设置到存储中的值。
就像使用的状态值是Ajax请求之前的状态值。我是否可以在封闭中使用该状态?但是为什么当我调试它时,我会在configDataX上看到Ajax请求之后的值吗?
我完全失败了。