鍍金池/ 問(wèn)答/HTML/ react兩個(gè)不相關(guān)的組件 當(dāng)組件1改變一個(gè)狀態(tài)時(shí)候組件2怎么改變

react兩個(gè)不相關(guān)的組件 當(dāng)組件1改變一個(gè)狀態(tài)時(shí)候組件2怎么改變

我是通過(guò)redux來(lái)進(jìn)行傳值的

場(chǎng)景是我點(diǎn)擊一下組件1的導(dǎo)航欄 然后刷新組件2的ajax

是用this.state.contnet接受的ajax返回?cái)?shù)據(jù)

那我應(yīng)該怎么寫(xiě)? 急需思路...

回答
編輯回答
礙你眼

你在click組件1方法中,調(diào)用組件2的ajax方法,將結(jié)果setState到content中

2017年2月4日 22:08
編輯回答
不二心

使用redux呢,你要將所有的state交給redux管理,只有組件內(nèi)才會(huì)使用this.state。組件之間呢,需要將redux管理的state通過(guò)props傳遞下去。

你在單擊組件1的事件中

onClick={() => dispatch(action)}

action是redux的action。當(dāng)然就可以fetch任一個(gè)ajax,即你所謂的組件2的ajax.
ajax返回后呢,dispatch一個(gè)reducer,將redex的state值merge了就可了。
組件2的state應(yīng)該通過(guò)connect將redux的state通過(guò)props傳遞下去。

2018年5月20日 03:47
編輯回答
囍槑

點(diǎn)擊組件1的時(shí)候handleclick里面

this.props.dispatch({type:'COMPONENT2_AJAX'})

然后actions里面的COMPONENT2_AJAX這個(gè)action成功后,也就是拿到數(shù)據(jù)后執(zhí)行
dispatch({type:'SET_STATE_CONTENT',content})
修改content,我沒(méi)明白你都用了redux還要用state干啥

2018年1月21日 10:36
編輯回答
薔薇花

那你應(yīng)該是分發(fā)一個(gè)動(dòng)作,負(fù)責(zé)去請(qǐng)求數(shù)據(jù)

2017年11月4日 18:29