我有一个反应版本 16 应用程序。使用 React 的 Context、reducer 概念处理状态更改。
要更改状态并执行更改后的操作,可以按如下方式处理。例如 - 我在组件“联系人”中。在这里面,我在一个变量 age 上发送一个状态变化,它是一个如下给出的数字 -
dispatch({
type: "CHANGE_AGE",
payload: age
})
并在减速器中捕获调度,如下所示
case "CHANGE_AGE":
return {
...state,
age: action.payload
}
要在年龄发生变化后在 'Contact' 组件中执行某些操作,我们可以使用 'useEffect' 来观察 'age' 的变化
useEffect({
//doSomething()
},[state.age])
问题是——如果我们必须改变一个处于状态的对象,即我们必须改变下面给出的地址,而不是改变年龄,我们必须在地址改变后做一些事情。
我们如何观察地址的变化?
dispatch({
type: "CHANGE_ADDRESS",
payload: {
city: "Delhi",
country: "India",
zip: '22233'
}
})
一种可能的解决方案 - 除了地址分派,我们还可以分派一个变量,我们可以根据它的变化做一些事情。但这不是一个完美的解决方案。