react 父组件与子组件同时存在异步数据请求 数据覆盖问题解决

本文探讨了在React应用中,父子组件如何正确处理内容更新,特别是涉及到图片上传和编辑器内容变更的情况。通过将图片上传逻辑移至父组件并传递回调函数到子组件,避免了父组件内容覆盖子组件新生成的数据,确保编辑页面内容的正确显示。
摘要由CSDN通过智能技术生成

问题描述

此页面功能为编辑页面
在这里插入图片描述

EditorDemo为了组件
在这里插入图片描述

如图所示 上面的标题 保存 分类为父组件,下面的编辑器为子组件,那么问题来了,如果我在现有内容#11111的基础上复制粘贴上传一个图片,此上传逻辑代码在子组件中,上传成功后我会拿着上传之前的内容#1111与返回的图片链接拼接一块再setValue更新value值,
此为子组件中的数据与SimpleMDE的绑定

 const [value, setValue] = useState('');

  <SimpleMDE
        onPaste={pasteEvent}
        value={props.content}
        onChange={onChange}
        options={userOptions}
      />

由于更新了value值此时会重新渲然子组件,而父组件传给props中的content就会覆盖新生成的value值,造成一打开页面的的内容一直覆盖后面需要生成的数据
此为父组件中引入的子组件代码

  <EditorDemo
              markdownContentRef={markdownContentRef}
              content={content}
            
            />
问题解决

把数据加载代码提到父组件中,并把这个函数引用传子组件,子组件回调父组件中的上传代码
即代码如下:
父组件中

 const imagePast = (evt) =>{上传代逻辑}
 <EditorDemo
              markdownContentRef={markdownContentRef}
              content={content}
               imagePast={imagePast}
            />

子组件中


  const pasteEvent = (evt) => {
    props.imagePast(evt);
  };
  
   <SimpleMDE
        onPaste={pasteEvent}
        value={props.content}
        onChange={onChange}
        options={userOptions}
      />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值