Redux Action Tip


ライブラリを把握するのは難しい.
https://redux-actions.js.org/api/createaction
渡されたパラメータが複数ある場合は、オブジェクトを作成してパラメータに入れるだけです.

export const userId = 1;
export const postId = 2;

dispatch(getPostAction({ userId, postId }));

//객체로 전달

export const getPostAction = createAction(GET_POST_REQUEST, ({ userId, postId }) => ({ userId, postId }));

/*
결과 :
{
    type: 'GET_POST_REQUEST'
    payload: {
        userId:1,
        postId:2,
    }
}
*/
	saga와 연동해서 잘 동작하는지 확인

export const detail = ({ userId, postId }) => {
  // const queryString = qs.stringify({
  //   page,
  //   username,
  //   tag,
  // });
  //return client.get(`/api/posts?${queryString}`);

  return console.log('이게 되냐?', userId, postId);
};
オブジェクトとして受信してもよいし、パラメータとして渡してもよい.
it('should return a map of camel-cased action types to action creators', () => {
  const { actionOne, actionTwo } = createActions({
    ACTION_ONE: (key, value) => ({ [key]: value }),
    ACTION_TWO: ({ first, second }) => ([first, second])
  });

  expect(actionOne('value', 1)).to.deep.equal({
    type: 'ACTION_ONE',
    payload: { value: 1 }
  });
  expect(actionTwo({ first: 'value', second: 2 })).to.deep.equal({
    type: 'ACTION_TWO',
    payload: ['value', 2]
  });
});
https://backback.tistory.com/316?category=801894