연결하는 간단한 React 구성 요소가 있습니다 (간단한 배열 / 상태 매핑). 스토어 컨텍스트를 참조하지 않으려면 props에서 직접 "dispatch"하는 방법을 원합니다. 나는이 접근 방식을 사용하는 다른 사람들을 보았지만 어떤 이유로 이것에 액세스 할 수 없습니다 :)
현재 사용중인 각 npm 종속성의 버전은 다음과 같습니다.
"react": "0.14.3",
"react-redux": "^4.0.0",
"react-router": "1.0.1",
"redux": "^3.0.4",
"redux-thunk": "^1.0.2"
다음은 연결 방법이있는 구성 요소입니다.
class Users extends React.Component {
render() {
const { people } = this.props;
return (
<div>
<div>{this.props.children}</div>
<button onClick={() => { this.props.dispatch({type: ActionTypes.ADD_USER, id: 4}); }}>Add User</button>
</div>
);
}
};
function mapStateToProps(state) {
return { people: state.people };
}
export default connect(mapStateToProps, {
fetchUsers
})(Users);
감속기를 볼 필요가 있다면 (흥미로운 것은 아니지만 여기 있습니다)
const initialState = {
people: []
};
export default function(state=initialState, action) {
if (action.type === ActionTypes.ADD_USER) {
let newPeople = state.people.concat([{id: action.id, name: 'wat'}]);
return {people: newPeople};
}
return state;
};
내 라우터가 redux로 어떻게 구성되어 있는지 확인해야하는 경우
const createStoreWithMiddleware = applyMiddleware(
thunk
)(createStore);
const store = createStoreWithMiddleware(reducers);
var Route = (
<Provider store={store}>
<Router history={createBrowserHistory()}>
{Routes}
</Router>
</Provider>
);
최신 정보
연결에서 내 자신의 디스패치를 생략하면 (현재 위의 fetchUsers를 표시하고 있음) 디스패치를 무료로 얻을 수 있습니다 (비동기 작업이있는 설정이 일반적으로 작동하는지 확실하지 않습니다). 사람들이 혼합하고 일치합니까, 아니면 전부입니까, 아니면 아무것도입니까?
[mapDispatchToProps]
bindActionCreators(actionCreators, dispatch)
선택 사항 의 두 번째 매개 변수 입니까? 내가 상기 코드에서 발견// es7 spread syntax
라인의이dispatch
전달되지 않습니다bindActionCreators