私は要素のfirebase非常に短いリストからフェッチreact-native-router-flux:以前のシーンに戻ってデータのリロードを強制するには?
class GroupList extends Component {
componentWillMount() {
this.props.fetchGroups();
リストビューを使用しています。
export const fetchGroups =() => {
const { currentUser } = firebase.auth();
return (dispatch) => {
dispatch({
type: FETCHING_GROUPS
});
firebase.database().ref(`/users/${currentUser.uid}/groups`)
.on('value', snapshot => {
dispatch({
type: GROUPS_FETCHED,
payload: snapshot.val()
});
});
};
};
私が反応し、ネイティブ・ルータ・フラックスを
<Scene
key="groupList"
component={GroupList}
title="Gruppi di servizio"
hideNavBar={false}
rightTitle="Nuovo"
onRight={() => Actions.groupForm({ formType: NEW_GROUP_FORM_TYPE })}
sceneStyle={{ paddingTop: 65 }}
/>
から提供右上のボタンを使用して新しいアイテムを作成するだから私は、右上の「新規」ボタンをクリックして、私は自分のフォームを参照してください。
return (dispatch) => {
dispatch({
type: TRYING_TO_CREATE_GROUP,
});
firebase.database().ref(`/users/${currentUser.uid}/groups`)
.push({ groupName })
.then(() => {
dispatch({ type: CREATE_GROUP_SUCCESS });
Actions.groupList({ type: 'reset' });
})
.catch((errorText) => {
dispatch({
type: CREATE_GROUP_FAILED,
payload: errorText
});
});
};
問題は何ですか:
ユーザーは、これは私のアクションはfirebaseに保存することです
新しいグループ名を保存しますか? componentWillMountが再び呼び出されるため
Actions.groupForm({ formType: NEW_GROUP_FORM_TYPE })}
と
Actions.groupList({ type: 'reset' })
マイGroupListを第一ラウンドの後
は、正常に更新されます。
問題は、groupForm - > groupListの2回目のラウンド後に、私のリストはもうリフレッシュされないということです。
コンソールログをcomponentWillMountに追加すると、それ以上実行されていないことがわかりました。
なぜですか?
シーン 'groupList'に戻る正しい方法は何ですか?更新は何もせずに強制しますか?
コード例 –