我有两个组件,FormComponent和OrderListComponent。 FormComponent上有一个字段要求用户从列表中选择一个来自OrderListComponent的值。所以我在FormComponent的字段上放了一个按钮,当用户点击该按钮时,我使用volume = Calculate.do_calc().get_volume(a);
将页面导航到OrderListComponent以显示用户的所有选项。当用户单击OrderListComponent上的其中一个选项时,我使用router.push('XXXX')
返回到FormComponent。这是问题,FormComponent如何从OrderListComponent获取选定的值?我知道我可以将选择保存为redux商店中的状态,但是我是否有更直接的方法来解决这个问题。
答案 0 :(得分:1)
最好的方法是让国家经理。 Redux州将优雅地解决它。虽然是Random User mentioned in his answer; localStorage
/ sessionStorage
可用于执行此操作。
但是,当为订单选择了太多项目时,通过URL传递值将会非常棘手。
可以更改状态,以便处于状态中的任何状态将在OrderListCompoennt
处提供一致的输出。
您可以拥有订单状态并将商品推送到该状态。然后将用户重定向到OrderListComponent
,而不是router.push('XXXX')
。
OrderListComponent
会观察状态并相应地显示相关项目。
FormComponent
还会查看用于标记当前添加项目的订单状态。这样,就不会有router.goBack()
;只是按router.push
当您的应用程序位于FormComponent
时,订单状态将自动负责标记当前有序的商品。
答案 1 :(得分:0)
将所选值存储在redux存储或组件状态本身是更好的选择,但您也可以
如果您正在使用这些方法中的任何一种,请在FormComponent
中检查该值是否存在并相应地执行操作。
示例代码
OrderListComponent
let handleChange = (value) => {
localStorage.orderListValue = value
}
这将取代任何现有的价值..,在这里使用你的大脑。
FormComponent
if ( localStorage.orderListValue ) {
console.log('Yay.. we have data');
} else {
// ask the user to select the List first.
}