Я делаю проект из курса веб-разработки, и я хочу немного изменить его, но я застрял. Я хочу сохранить этот вывод -> response.outputs[0].data.regions[0].data.concepts[0].name как переменную, а затем передать ее дочернему компоненту, однако все способы, которые я пытался сделать, не работали. Какие-либо предложения? Спасибо!
``` onSubmit = () => {
this.setState({imageUrl: this.state.input});
app.models
.predict(
Clarifai.RANDOM_MODEL,
this.state.input)
.then(
function (response){
console.info(response.outputs[0].data.regions[0].data.concepts[0].name);
},
function(err){
console.info(err)
}
);
} ```
Вы не можете вернуть ответ на асинхронный вызов.
Внутри обратного вызова then
сохраните данные в состоянии компонента.
Когда вы визуализируете дочерний компонент, передайте данные из состояния через свойство.
Поскольку состояние может еще не иметь желаемого значения, вам необходимо проверить это и предоставить подходящее альтернативное содержимое.
например
if (myStateVariable) {
return <Foo value = {myStateVariable} />
}
return <LoadingIndicator />
Спасибо! Я попробовал состояние, а позже я также понял, что проблема была в том, что, вероятно, вывод еще не вышел, но я не подумал об условном выражении! Я попробую :)