У меня возникли проблемы с выполнением последней работы здесь. Мне нужно взять объект, который возвращается из метода _request и назначить его переменной propVals в методе рендеринга, а затем передать эту переменную в propValues для компонента SingleChannel, как вы можете видеть. Моя проблема в том, что propVals не определен, когда я возвращаю компонент SingleChannel. Я знаю, что инструкции if возвращают то, что они должны быть, поэтому проблема заключается в том, что компонент SingleChannel обрабатывается до того, как propVals получает объект. Я действительно не знаю, что еще делать. Я также попытался вызвать метод непосредственно из компонента SingleChannel, например channelValues = {this._request (channel.name)}.Назначьте функцию возвращать объект переменной и передать ее компоненту в качестве опоры
_request(name) {
HTTP.call('GET', `https://api.twitch.tv/kraken/streams/${name}`,
{headers: {Accept: 'application/vnd.twitchtv.v3+json'} },
function(error, response) {
if(error) {
console.log(error)
} else {
if(response.data.stream === null) {
return {streaming: false, game: "Not playing anything"}
} else {
return {streaming: true, game: response.data.stream.game}
}
}
});
}
renderChannels() {
const channels = this.props.channels;
console.log(channels)
return channels.map((channel) => {
const propVals = this._request(channel.name);
//console.log(propVals);
return <SingleChannel key={channel._id} channel={channel} channelValues={propVals}/>
});
}
Это помогло мне много так что спасибо, но метод _REQUEST зависит от функции отображения, чтобы передать ему имя канала, так что я не уверен, как это сделать в компонентеDidMount. Я оставил его, как у меня, но изменил его, возвратив объект, чтобы установить состояние, и это работает до некоторой степени. Теперь моя функция отображения выглядит сумасшедшей, и она непрерывно повторяется через каналы снова и снова. –
@nickkasamis Можете ли вы предоставить свой текущий код pastebin.com, чтобы более четко понимать вас? – 1ven
http://pastebin.com/2Q7UDTrt - Мое предположение заключается в том, что при загрузке компонента массив отображается и для каждого элемента он будет вызывать метод запроса, который должен установить состояние. Затем вывести элемент Strike, передающий текущее состояние как реквизит. –