클라이언트를 만드는 데 필요한 redux 응용 프로그램을 설정하고 있습니다. 초기화 후에 클라이언트에는 특정 작업에 따라 호출해야하는 리스너 및 API가 있습니다.redux에 클라이언트를 저장하는 방법은 무엇입니까?
그 때문에 클라이언트 인스턴스를 유지해야합니다. 지금, 나는 그것을 국가에 저장하고있다. 그게 맞습니까?
그래서 나는 다음과 같은 redux 액션 크리에이터를 가지고 있지만 메시지를 보내려 할 때 client.say (...) API를 호출해야합니다.
그러나 클라이언트 개체는 어디에서 가져와야합니까? 상태에서 클라이언트 개체를 검색해야합니까? 내 이해는 그게 희박한 반 패턴이다. redux로 이것을하는 적절한 방법은 무엇입니까?
낯선 사람 - 실제로 상태를 변경하지 않을 때 메시지 작성자가 작업 작성자로 간주되어야합니까?
액션 : 액션 제작자로 클라이언트 객체를 주입
// reducer.js
import { CLIENT_MESSAGE_RECEIVED, CLIENT_INITIALIZE } from '../actions/client';
import irc from 'irc';
export default function client(state: Object = { client: null, channels: {} }, action: Object) {
switch (action.type) {
case CLIENT_MESSAGE_RECEIVED:
return {
...state,
channels: {
...state.channels,
[action.to]: [
// an array of messages
...state.channels[action.to],
// append new message
{
to: action.to,
from: action.from,
body: action.body,
}
]
}
};
case CLIENT_JOIN_CHANNEL:
return {
...state,
channels: {
...state.channels,
[action.channel]: [],
}
};
case CLIENT_INITIALIZE:
return {
...state,
client: action.client,
};
default:
return state;
}
}