Inheritance 用super()反应子类化模式

Inheritance 用super()反应子类化模式,inheritance,reactjs,react-router,es6-class,Inheritance,Reactjs,React Router,Es6 Class,在react router教程的最后部分中,他们建议使用活动链接 站点中的大多数链接不需要知道它们处于活动状态,通常只需要知道主导航链接。包装它们很有用,这样您就不必记住您的activeClassName或activeStyle无处不在 我们将在这里使用一个扩展运算符,三个点。它克隆了我们的道具,在这个用例中,它将activeClassName克隆到我们想要的组件,以便我们从中受益 在modules/NavLink.js处创建一个新文件,如下所示: export default class ex

在react router教程的最后部分中,他们建议使用活动链接

站点中的大多数链接不需要知道它们处于活动状态,通常只需要知道主导航链接。包装它们很有用,这样您就不必记住您的activeClassName或activeStyle无处不在

我们将在这里使用一个扩展运算符,三个点。它克隆了我们的道具,在这个用例中,它将activeClassName克隆到我们想要的组件,以便我们从中受益

在modules/NavLink.js处创建一个新文件,如下所示:

export default class extends Link {
    constructor({firstProp, secondProp, thirdProp = "default value here"}) {
        super(props);
    }
}

使用ES6 React类,您可以像上面那样调用
super
。在类声明为默认道具后,可以声明默认道具:

myClass.defaultProps = {
    activeClassName: 'active'
}
或者您可以在构造函数的参数中声明默认道具,如下所示:

export default class extends Link {
    constructor({firstProp, secondProp, thirdProp = "default value here"}) {
        super(props);
    }
}

谢谢我尝试了第一个建议,它成功了,但我想知道是否有一种方法可以用任意数量的属性来实现你的第二个建议,因为你现在的建议不起作用(
constructor
需要声明
props
作为要使用的参数)。为什么我的问题被否决了?
export default class extends Link {
    constructor({firstProp, secondProp, thirdProp = "default value here"}) {
        super(props);
    }
}