を使用する RN (0.44.2) mobx
(3.1.10) アプリがありますFlatList
。私は基本的にhttps://blog.callstack.io/write-react-native-apps-in-2017-style-with-mobx-e2dffc209fcbに従っています
例とは対照的に、自分のストアを使用する場合toJS()
、FlastList をレンダリングするために使用する必要があります。
// renders list
<FlatList
data={this.props.giphyStore.images.toJS()}
keyExtractor={(_, i) => i}
renderItem={({ item }) => <Text>found the data</Text>}
/>
// does not render list
<FlatList
data={this.props.giphyStore.images}
keyExtractor={(_, i) => i}
renderItem={({ item }) => <Text>did not find the data</Text>}
/>
toJS()
なぜ必要な場合とそうでない場合があるのか を理解するのに本当に苦労しています。
私の店はこのように観察可能な画像を設定しています
async getImageList(query: string) {
try {
const requestURL = `${constants.GIPHY_ENDPOINT}${query}`
const response = await axios.get(requestURL);
const imgs = response.data.data.map((item) => {
return { id: item.id, url: item.images.downsized.url }
})
this.images.replace(imgs)
} catch (e) {
}
}
this.images.replace(imgs)
フォローアップの質問として、チュートリアルのように、彼が単に行った次のことを行う必要がある理由がわかりませんthis.tracks = response.data.tracks.items
。これにより、オブザーバブルが正常にトリガーされます。
誰か提案があれば、とても感謝しています。