シーンの中にあるコンプ(react-native-router-flux
)があります。それは人々が好みの果物を選ぶことを可能にします。親コンプでコンポーネントをロードする前に、APIからコンポーネントのプロパティを取得する必要がある場合はどうすればいいですか?
import React, {Component} from 'react';
import {View, Text, StyleSheet} from 'react-native';
import {MKCheckbox} from 'react-native-material-kit';
var styles = StyleSheet.create({});
export default class PickAFruit extends Component {
render() {
console.log(this.props.fruits);
return (
<View>
{
this.props.fruits.map((x)=> {
return (
<View key={x.key}>
<Text>{x.key}</Text>
<MKCheckbox checked={this.props.checked} key={x.key} onCheckedChange={(e) => {
this.props.update(e, '' + x.key)
}}/>
</View>
)
})
}
</View>
)
}
}
私はdidMountでAPIから果物のリストをロードしています:
componentDidMount() {
ApiInst.getFruits().then((fruits) => {
console.log(fruits);
console.log(this.props.fruits);
this.props.fruits = fruits;
});
}
私も親クラスのデフォルトfruits
配列を設定しています。プロパティはAPI経由でロードされないようですが、果物のリストは常に「未知」の値であり、決して新しい値ではありません。プロフィールシーンが読み込まれる前に果物のリストを読み込む必要がありますか?コンポーネントがAPIから来る場合、コンポーネントのプロパティを設定する正しい時期はいつですか?
setState
は簡単な答えと思われますが、これらの設定は状態のように「感じる」ものではなく、ビルド時に(つまりコンポーネントがビルドされたとき、アプリではなく)注入されるプロパティのように感じます。これは本当の違いなしの区別ですか?
を追加それについての最後の段落、あなたの答えを更新してください? – jcollum