J'ai une application RN (0.44.2) mobx
(3.1.10) qui utilise un FlatList
. Je suis essentiellement suivant https://blog.callstack.io/write-react-native-apps-in-2017-style-with-mobx-e2dffc209fcbReact Native mobx liaison à FlatList ne fonctionne pas
Lorsque vous utilisez mon propre magasin, contrairement aux exemples, je vais avoir à utiliser toJS()
afin d'obtenir la FlastList rendre
// 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>}
/>
Je suis vraiment mal à la figure pourquoi peut-être besoin de toJS()
dans certains cas et pas d'autres.
Mon magasin est le réglage des images observables comme celui-ci
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) {
}
}
En question de suivi, je ne sais pas pourquoi je dois faire le this.images.replace(imgs)
suivant où, comme dans le tutoriel, il fait tout simplement fait this.tracks = response.data.tracks.items
qui déclenche l'observable très bien.
Si quelqu'un a des suggestions, je l'apprécierais beaucoup.
peut être lié à [cette] (https://github.com/mobxjs/mobx/blob/gh-pages/docs/best/react.md#incorrect-access-out-of -bounds-indices-dans-tracked-fonction) – Kakar