【发布时间】:2020-03-25 23:43:24
【问题描述】:
在我的组件中,我有一个名为destination 的变量,我将它分配为一个空字符串。然后我有一个返回承诺的函数,我将响应传递给另一个函数,然后在Object.assign 中使用返回的对象。我使用新对象来更新我在 promise 之外创建的 destination 变量。
render() {
return (
<div className='destinations-container'>
{
Object.keys(this.state.destinations).map((id) => {
var destination = "";
getFormSchema(this.state.destinations[id].product_type)
.then(
(response) => {
let defaultConfig = setDefaultConfig(response.data);
destination = Object.assign(defaultConfig, this.state.destinations[id]);
});
return <Widget name={destination.name}
textlinks={this.createWidgetTextLinks(destination)}
state={getDestinationState(this.state.metadata[id] || {})}>
<WidgetInfo>
{widgetOverviewStaticInformation(destination, this.state.productList)}
{metadataOverviewItemsToShow(this.state.metadata[id] || {})}
</WidgetInfo>
<EditDestinationForm destination={destination}/>;
</Widget>
})
}
</div>
)
}
问题是目标变量仍然保留为"",即使在为它分配了从承诺中的Object.assign 返回的对象之后。这让我相信,promise 中的destination 变量和我在promise 之外分配为空字符串的destination 变量是两个不同的东西。
如何更新我在 promise 中声明为空字符串的变量?
【问题讨论】:
-
为什么字符串不在引号中?
标签: javascript reactjs object promise