小编Ben*_*nce的帖子

在 React 全局组件(例如 AppRoot 中的小吃栏)中使用 CustomEvent 是一个坏主意吗?

需要一个全局的snackbar通知处理程序,可以从任何地方触发,而不仅仅是反应组件。

我的想法是制作一个监听CustomEvent并仅显示snackbar事件触发时间的组件。我制作了一个简单的事件调度程序类,可以在项目的每个部分中导入。它运作良好并且非常易于使用。

全局 React 组件的一部分

componentDidMount() {
  document.addEventListener("onGobalMessage", this.onSnackMessage);
}

componentWillUnmount() {
  document.removeEventListener("onGobalMessage", this.onSnackMessage);
}

onSnackMessage = evt => {
  const { detail } = evt;
  this.setState({ open: true, ...detail });
};
Run Code Online (Sandbox Code Playgroud)

调度程序对象

componentDidMount() {
  document.addEventListener("onGobalMessage", this.onSnackMessage);
}

componentWillUnmount() {
  document.removeEventListener("onGobalMessage", this.onSnackMessage);
}

onSnackMessage = evt => {
  const { detail } = evt;
  this.setState({ open: true, ...detail });
};
Run Code Online (Sandbox Code Playgroud)

我的问题是:在react项目中使用这种方式是邪恶的吗?:)

javascript events reactjs

2
推荐指数
1
解决办法
813
查看次数

标签 统计

events ×1

javascript ×1

reactjs ×1