Reduxの-サガとリダイヤルサーバー側を使用して、私はリダイヤルを通じて自分のアプリケーション・サーバー側の初期状態を取得しようとしています。は今
リダイヤルは純粋なオブジェクトアクションをトリガし、redux-sagaはそのアクションをリッスン/待機してから非同期リクエストを開始します。
しかし、問題は、純粋なオブジェクトをディスパッチしているため、redux-sagaが完了したときにリダイヤルが解決するという約束がありません。
コンポーネント
const redial = {
fetch: ({ dispatch }) => dispatch({ type: actionTypes.FETCH_START }),
};
export default class PostList extends Component {
render() {
const { posts } = this.props;
return (
<div>
{posts.map(post => <ListItem key={post.id} post={post} />)}
</div>
);
}
}
PostList.propTypes = {
posts: PropTypes.array.isRequired,
};
export default provideHooks(redial)(connect(mapStateToProps)(PostList));
佐賀
export function *fetch() {
try {
yield put({ type: actionTypes.FETCH_START });
const response = yield call(fakeData);
yield put({ type: actionTypes.FETCH_SUCCESS, data: response.data });
yield put({ type: actionTypes.FETCH_PENDING });
} catch (e) {
yield put({ type: actionTypes.FETCH_FAIL });
}
}
export default function *loadPost() {
yield * takeLatest(actionTypes.FETCH_START, fetch);
}
export default function *rootSaga() {
yield [
fork(loadPost),
];
}
redux-saga
にredial
を接続する方法はありますか?