react多组件间通讯解决方案实记

场景复现:

react多组件间通讯

在做文章编辑发布的时候,文章各内容均分布于不同的组件,甚至存在于不同的页面,还存在组件销毁问题,想在点击发布的时候拿到其他组件的内容是比较麻烦的
在这里插入图片描述


我最初的解决方案

采用dva简易数据流model对全局数据进行管理

  1. 设立全局model
export default {
    namespace: 'write',

    state: {
        content: '',
        title: '',
        category: '',
        description:'',
        isPublic:false,
        coverUrl:''
    },
  1. 各组件内同步model状态
if (response.code === 200) {
                dispatch({
                    type: "write/setPostByHand",
                    payload: {
                        coverUrl: response.message
                    }
                });
  1. 最终消费成功后重置全局model
if (response.code===200){
                    message.success("发表成功")
                    //清除全局model
                    dispatch({
                        type: "write/cleanPostByHand",
                    })
                    history.push(`home`)
                }else{
                    message.error("系统错误,请联系小星")
                }

后续思路及改进措施:

虽然这种方式成功实现了需求,但是在浏览器刷新的时候还是会造成数据丢失

所以昨晚睡觉的时候我想到是否可以用localstorage存储,这样就不存在数据丢失的问题了(天哪我为什么没有早想到在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值