我曾踏足山巅,也曾进入低谷,二者都让我受益良多。——《英雄联盟》瓦洛兰之盾塔里克

上一期:Apache-ShenYu支持namespace功能

喜闻乐见,这是个连续系列,今天主要是给shenyu-dashboardselector部分添加namespace适配

PR连接:

https://github.com/apache/shenyu-dashboard/pull/471

这里有一个知识点

1
2
3
4
5
6
import { connect } from "dva";

@connect(({ global }) => ({
currentNamespaceId: global.currentNamespaceId,
}))
class RuleCopy extends Component {}

装饰器语法 @connect 来连接组件与 dva 的状态管理。@connect 是一个高阶函数,通常用于将 Redux store(在 dva 中表现为 model)中的状态映射到组件的 props 中。

({ global }) => ({ currentNamespaceId: global.currentNamespaceId }) 是一个映射函数,用于从 dva 的全局状态中提取数据,并将其作为 props 传递给组件。

  • globaldva 中的一个 model(模型),它包含了应用的全局状态。
  • currentNamespaceId 是从 global 模型中提取的一个状态属性。这个属性的值将被映射到 RuleCopy 组件的 props 中。

因此在RuleCopy里可以使用props.currentNamespaceId得到响应式currentNamespaceId