最初にgetPostSuccessでは、20件のPostsを取得しています。
ReadMoreボタンを押下した際に、readMorePostsNextを実行し、追加でデータを取得するようにしています。
(@reduxjs/toolkit を利用しています。)
ですが、最初に取得するgetPostSuccessとreadMorePostsNextが殆ど同じ処理をしている(違うのはState.postsの内容のみ)ので、重複した記述を書かないで済む方法を探しています。
それぞれ、methodになるのですが、重複して書かない方法があれば、ご教授いただけないでしょうか?
typescript
1(method) getPostsSuccess(state: WritableDraft<AllPostApi>, { payload }: PayloadAction<PostLoaded>): void 2(method) readMorePostsNext(state: WritableDraft<AllPostApi>, { payload }: PayloadAction<PostLoaded>): void
typescript
1const postSlice = createSlice({ 2 name: 'postsDisplay', 3 initialState, 4 reducers: { 5 getPostsStart: startLoading, 6 getPostsSuccess(state, { payload }: PayloadAction<PostLoaded>) { 7 const posts = payload 8 state.posts = posts.posts 9 state.nextToken = posts.nextToken 10 state.isLoading = false 11 state.error = null 12 console.log('get Post Success') 13 }, 14 getPostsFailure:loadingFailed, 15 subscribePost(state, { payload }: PayloadAction<Post>) { 16 const post = payload 17 state.posts = [post,...state.posts] 18 state.isLoading = false 19 state.error = null 20 console.log('Subscribe') 21 }, 22 readMorePostsNext(state, { payload }: PayloadAction<PostLoaded>) { 23 const posts = payload 24 state.posts = [...state.posts,...posts.posts] 25 state.nextToken = posts.nextToken 26 state.isLoading = false 27 state.error = null 28 console.log('Read More Success') 29 } 30 } 31})
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。