2 回答

TA貢獻1790條經驗 獲得超9個贊
假設你有一個子組件 Child,你想將數據存在 store 下的 child。
當前的 store 狀態是
{
// other data
child: {
// child data
}
}
在 redux 的世界里, store 的更改必須由 reducer function 來更改,此時就需要發送一個類似 resetChildData 的action,簡寫如下
export resetChildData = () => {
type: 'REST_CHILD_DATA',
}
然后需要書寫對應的 reducer 來了真正的清除數據
const INIT_STATE = {}
export const childReducer = (state, action) => {
switch(action.type) {
case 'REST_CHILD_DATA':
return INIT_STATE
default:
return state
}
}
注意此時的 rootReducer 需要綁定這個 childReducer
const rootReducer = {
child: ChildReducer,
}
至此,在 Child 組件中,將 action 通過 connect 函數傳入
import resetChildData from '../actions/child'
Class Child extends Component {
}
export default connect(
null,
{
resetChildData,
}
)(Child)
在組件任何地方就可以使用 this.props.resetChildData 來清空 store 下的 child
添加回答
舉報