Bağladığım basit bir React bileşenim var (üzerinden basit bir dizi / durum eşleme). Mağazanın içeriğine referans vermekten kaçınmak için, doğrudan sahne donanımlarından "gönderim" almanın bir yolunu istiyorum. Başkalarının bu yaklaşımı kullandığını gördüm, ancak nedense buna erişimim yok :)
Şu anda kullandığım her npm bağımlılığının sürümleri burada
"react": "0.14.3",
"react-redux": "^4.0.0",
"react-router": "1.0.1",
"redux": "^3.0.4",
"redux-thunk": "^1.0.2"
İşte bağlantı yöntemi ile bileşen
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);
Redüktörü görmeniz gerekiyorsa (heyecan verici bir şey değil ama işte burada)
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;
};
Yönlendiricimin redux ile nasıl yapılandırıldığını görmeniz gerekiyorsa
const createStoreWithMiddleware = applyMiddleware(
thunk
)(createStore);
const store = createStoreWithMiddleware(reducers);
var Route = (
<Provider store={store}>
<Router history={createBrowserHistory()}>
{Routes}
</Router>
</Provider>
);
Güncelleme
Görünüşe göre eğer bağlantıda kendi gönderimi atlarsam (şu anda yukarıda fetchUsers'ı gösteriyorum), gönderimi ücretsiz alacağım (sadece eşzamansız eylemler içeren bir kurulumun genellikle böyle çalışıp çalışmayacağından emin değilim). İnsanlar karışıyor mu yoksa hepsi mi yoksa hiç mi?
[mapDispatchToProps]
bindActionCreators(actionCreators, dispatch)
isteğe bağlı ikinci parametredir ? Ben de Kodunuzdaki fark// es7 spread syntax
hattı,dispatch
verili değildirbindActionCreators