当前位置: 首页 > wzjs >正文

找项目去哪个网站北京亦庄网站建设公司

找项目去哪个网站,北京亦庄网站建设公司,网站备案 强制,免费授权企业网站源码要在 Reply 组件中通过 statusChangeEvent 发送状态值,并在 Select 组件中接收这个状态值 status,你可以按照以下步骤实现: //Event.jsimport EventEmitter from events;export const statusChangeEvent new EventEmitter();// 工单状态切换…

要在 Reply 组件中通过 statusChangeEvent 发送状态值,并在 Select 组件中接收这个状态值 status,你可以按照以下步骤实现:

//Event.jsimport EventEmitter from 'events';export const statusChangeEvent = new EventEmitter();// 工单状态切换事件

1. 在 Reply 组件中发送状态值

你已经正确地在 Reply 组件中设置了事件发射:

// Reply.jsx
import { statusChangeEvent } from './Event';const Reply = () => {const [status, setStatus] = useState('');const changeStatus = useCallback(status => {setStatus(status);statusChangeEvent.emit('status-changedValue', status);}, []);return (// 你的组件内容<button onClick={() => changeStatus('new-status')}>更改状态</button>);
};

2. 在 Select 组件中接收状态值

// Select.jsx
import { useEffect, useState } from 'react';
import { statusChangeEvent } from './Event';const Select = () => {const [status, setStatus] = useState('');useEffect(() => {// 定义事件监听器const handleStatusChange = (newStatus) => {setStatus(newStatus);};// 添加事件监听statusChangeEvent.on('status-changedValue', handleStatusChange);// 组件卸载时移除监听return () => {statusChangeEvent.off('status-changedValue', handleStatusChange);};}, []);return (<div><p>当前状态: {status}</p>{/* 其他组件内容 */}</div>);
};

3. 优化方案(推荐)

虽然 EventEmitter 可以工作,但在 React 中更推荐使用 Context 或状态管理库(如 Redux)来处理跨组件状态共享。以下是使用 Context 的替代方案:

创建状态上下文

// StatusContext.js
import { createContext, useContext, useState } from 'react';const StatusContext = createContext();export const StatusProvider = ({ children }) => {const [status, setStatus] = useState('');return (<StatusContext.Provider value={{ status, setStatus }}>{children}</StatusContext.Provider>);
};export const useStatus = () => useContext(StatusContext);

在 Reply 组件中使用

// Reply.jsx
import { useStatus } from './StatusContext';const Reply = () => {const { setStatus } = useStatus();const changeStatus = useCallback(status => {setStatus(status);}, [setStatus]);return (<button onClick={() => changeStatus('new-status')}>更改状态</button>);
};

在 Select 组件中使用

// Select.jsx
import { useStatus } from './StatusContext';const Select = () => {const { status } = useStatus();return (<div><p>当前状态: {status}</p></div>);
};

在应用顶层包裹 Provider

// App.js
import { StatusProvider } from './StatusContext';function App() {return (<StatusProvider><Reply /><Select /></StatusProvider>);
}

注意事项

  1. EventEmitter 方案

    • 适合非父子组件间的通信

    • 记得在组件卸载时移除监听器

    • 可能导致难以追踪的数据流

  2. Context 方案

    • React 推荐的方式

    • 更易于维护和调试

    • 当状态变化时,所有使用该状态的组件都会重新渲染

  3. 性能考虑

    • 如果状态更新频繁,考虑使用 useMemo 或 React.memo 优化性能

    • 对于复杂应用,Redux 或 Zustand 可能是更好的选择

选择哪种方案取决于你的应用复杂度和组件结构。对于简单场景,EventEmitter 足够;对于更复杂的应用,推荐使用 Context 或状态管理库。


文章转载自:

http://YhOoCYj4.wjjxr.cn
http://4C7isEpC.wjjxr.cn
http://LhI5WFiM.wjjxr.cn
http://X1BlBEKT.wjjxr.cn
http://Wx9k7edz.wjjxr.cn
http://xRjtH76H.wjjxr.cn
http://YIVxVaC3.wjjxr.cn
http://uSbzDjUY.wjjxr.cn
http://qclUlnpX.wjjxr.cn
http://AHad2PLy.wjjxr.cn
http://J7i4ieTG.wjjxr.cn
http://G9HT2iRa.wjjxr.cn
http://OPv1H0pf.wjjxr.cn
http://XuXOxINk.wjjxr.cn
http://4RJ8orDP.wjjxr.cn
http://MJR7x5fG.wjjxr.cn
http://5Y4Ypltp.wjjxr.cn
http://WNiyWan8.wjjxr.cn
http://DWmTjXwl.wjjxr.cn
http://S9n8Vuwe.wjjxr.cn
http://DfIPBin8.wjjxr.cn
http://jhLfaGDT.wjjxr.cn
http://clmfLNWt.wjjxr.cn
http://7KCHEoN7.wjjxr.cn
http://AOSjVcQV.wjjxr.cn
http://yvpkHyFy.wjjxr.cn
http://cPYGuubf.wjjxr.cn
http://0JFNUmJL.wjjxr.cn
http://rvSTP1xD.wjjxr.cn
http://QQfYWgCz.wjjxr.cn
http://www.dtcms.com/wzjs/755875.html

相关文章:

  • wordpress最新评论怎么做网站关键词优化
  • 网站建设怎样把网页连接起来阿里云 虚拟主机 wordpress
  • 怎么做网站封面上的图北京建网站找哪个公司
  • php做听歌网站计算机应用技术好就业吗
  • 高度重视局门户网站建设制作一个自适应网站
  • 门户网站开发费需入无形资产建设个人网站的要求
  • 唐山如何做百度的网站建设树莓派wordpress速度慢
  • 制作网页前为什么要建立站点wordpress 首页缓存
  • 建设网站导航怎么盈利东莞seo推广机构帖子
  • 有一个做炫舞官网活动的网站刷外链网站
  • 网站注册域名多少钱腾讯企业邮箱收费标准一年多少钱
  • 工信部网站icp备案图片制作方法
  • 自微网站首页找别人做网站
  • 网站建站服务公司做网站的技术要求
  • 做设计网上揽活哪个网站最好寻求一个专业网站制作公司
  • 哈尔滨网站制作专业龙海网站建设
  • 营销型网站 易网拓网页设计与网站建设指标点
  • wordpress 预览插件下载网站如何做360优化
  • 广西南宁网站推广新浪 博客可以做网站优化吗
  • 班级网站怎么做ppt显示WordPress页面打开时长
  • 网站推广产品济南seo快速霸屏
  • 做百科权威网站有哪些wordpress 页脚地图
  • 娄底建设网站公司京东商城网站风格
  • 网站搭建论文网站出现500
  • 深圳互联网网站建设初中生可做兼职的网站
  • 电商网站开发人员工程公司取名大全
  • 网站做等保测评短网址生成防屏蔽
  • 网上商城网站开发WordPress 百度 主动
  • 淘宝客推广网站建设展台展览
  • 网站权重怎么做的哈尔滨cms网站建设