Tôi có một thành phần React đơn giản mà tôi kết nối (ánh xạ một mảng / trạng thái đơn giản qua). Để tránh tham chiếu đến bối cảnh cho cửa hàng, tôi muốn có một cách để lấy "công văn" trực tiếp từ các đạo cụ. Tôi đã thấy những người khác sử dụng phương pháp này nhưng không có quyền truy cập vào cách này vì một số lý do :)
Đây là các phiên bản của từng phụ thuộc npm mà tôi đang sử dụng hiện tại
"react": "0.14.3",
"react-redux": "^4.0.0",
"react-router": "1.0.1",
"redux": "^3.0.4",
"redux-thunk": "^1.0.2"
Đây là phương thức thành phần w / connect
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);
Nếu bạn cần xem bộ giảm tốc (không có gì thú vị nhưng nó ở đây)
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;
};
Nếu bạn cần xem bộ định tuyến của tôi được định cấu hình như thế nào w / redux
const createStoreWithMiddleware = applyMiddleware(
thunk
)(createStore);
const store = createStoreWithMiddleware(reducers);
var Route = (
<Provider store={store}>
<Router history={createBrowserHistory()}>
{Routes}
</Router>
</Provider>
);
cập nhật
có vẻ như nếu tôi bỏ qua công văn của riêng mình trong kết nối (hiện ở trên tôi đang hiển thị Người dùng tìm nạp), tôi sẽ nhận được công văn miễn phí (chỉ không chắc liệu đây có phải là cách thiết lập các hành động w / async thường hoạt động hay không). Người ta trộn và kết hợp hay là tất cả hoặc không có gì?
[mapDispatchToProps]
bindActionCreators(actionCreators, dispatch)
tùy chọn? Tôi nhận thấy trong mã của bạn ở// es7 spread syntax
dòng, dòngdispatch
không được chuyển đếnbindActionCreators