В моем компоненте у меня есть переменная с именем destination
, и я назначаю ее как пустую строку. Затем у меня есть функция, которая возвращает обещание, и я передаю ответ другой функции, где я затем использую возвращенный объект в Object.assign
. Я использую новый объект для обновления переменной 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
в обещании. Это заставляет меня поверить, что переменная destination
внутри обещания и переменная destination
, которую я назначил в качестве пустой строки вне обещания, - это две разные вещи.
Как обновить переменную, которую я объявил как пустая строка внутри обещания?