Şu anda iki bileşenim var (bir kapsayıcı bileşen ve bir sunum). componentDidMount
ve componentWillReceiveProps
yaşam döngüsü yöntemlerinde uygulanması gereken bazı mantık var, özellikle orada bazı eylemleri göndermek zorundayım.Redux. Sunum bileşeninin yaşam döngüsü yöntemlerini bir kapsayıcı bileşeninden tanımlayın.
Şu anda, bir mapDispatchToLinkProps
fonksiyonunda bu eylem yaratıcıları haritalama ve connect
fonksiyonu ile benim sunum bileşenin props
onları geçmek ve daha sonra, ben componentDidMount
ve componentWillReceiveProps
yöntemlerde diyoruz ediyorum. İşte ben bunu uyguladık nasıl:
Konteyner bileşeni:
const mapDispatchToLinkProps = (dispatch, ownProps) => {
return {
onMount:() => {
dispatch(loadRooms(ownProps.floor))
},
onPropsReception: (nextProps, currentProps) => {
if (nextProps.floor != currentProps.floor) {
dispatch(loadRooms(nextProps.floor))
}
}
}
}
Sunumla bileşen:
export default connect(mapStateToProps, mapDispatchToLinkProps)(MapLayer):
componentDidMount() {
this.props.onMount()
}
componentWillReceiveProps(nextProps) {
this.props.onPropsReception(nextProps, this.props)
}
render() {
// ...
}
Burada sevmiyorum şey olduğunu ben bağlamı böyle bir şekilde kaybediyorum veyönteminin ikinci bir bağımsız değişken olarak this.props
geçirmesi gerekiyor:
this.props.onPropsReception(nextProps, this.props)
Sunum bileşeninin yaşam döngüsü yöntemlerini bir kapsayıcı bileşeninden tanımlamanın, ancak sunum bileşeninin içeriğini koruyabilmenin bir yolu var mı? Ya da daha da iyisi, yaşam döngüsü yöntemlerini sunum bileşeni dahilinde herhangi bir çağrı olmadan geçersiz kılmak mı? ben henüz bir yorum,
Neden presentational bileşen & gerekli kontroller sadece sağ parametreleri içeren sonradan bir çağrı yapacağım değil ekleyemezsiniz
Bunu çözebildiniz mi? Benzer problemim var. Reaktif yönlendirici kullanıyorum ve redux. URL sorgu parametrelerini yakalarım (/ search? Q = 'foo' & page = 1). url parametresi değiştiğinde componentWillUpdate yaşam döngüsü yöntemi çağrılır. Bağlantı yöntemini kullanarak yaşam döngüsü bileşenini geçmenin yolunu bilmiyorum. Veya mapStateToProp'u React.createClass bileşenine nasıl geçirirsem. –
Üzgünüz, buraya dönme vaktim olmadı, sorun çözülmedi. –