如何在与打字稿反应时为子类声明不同的状态和道具

特斯卡

一般来说,React对打字稿和静态类型都是超新的,所以

鉴于我有这个父组件:

interface ParentProps {
 something: string
}

interface ParentState {
 somethingElse: string
}

export default class ParentComponent extends React.Component<ParentProps, ParentSate> {

  // Component Logic.

  sharedFunction() {
    // Some shared function.
  }
}

如何在子组件上声明不同的道具和状态,例如:

interface ChildProps {
 something: string
}

interface ChildState {
 somethingElse: string
}

export default class ChildComponent extends ParentComponent<ChildProps, ChildState> {
  // Child component logic.
}

当我尝试以上内容时,我得到:

[ts] Type 'ParentComponent' is not generic.

那么,实现这种分离的最佳方法是什么?谢谢。

提香·切尔尼科娃·德拉戈米尔

您也可以将其ParentComponent设为通用,以便ChildComponent可以指定不同的道具和状态:

interface ParentProps {
    something: string
}

interface ParentState {
    somethingElse: string
}

export class ParentComponent<TProps extends ParentProps = ParentProps, TState extends ParentState = ParentState>
extends React.Component<TProps, TState> {

    // Component Logic.

    sharedFunction() {
        // Some shared function.
    }
}

interface ChildProps {
    something: string
}

interface ChildState {
    somethingElse: string
}

export class ChildComponent extends ParentComponent<ChildProps, ChildState> {
    // Child component logic.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

接口状态和打字稿中的道具反应

如何在反应时修改数组并将新元素添加到数组状态

如何在反应/打字稿中使用枚举作为道具

如何在反应 + 打字稿中设置道具类型

如何在反应打字稿中将函数作为道具传递

如何在事件发生反应时访问当前元素?

如何在点击反应时触发componentdidmount

如何在与 css 反应时延迟悬停效果?

如何在与地图反应时显示此数据

如何在点击反应时更改 div 的样式?

如何在与useRef反应时保留签名

反应时执行componentDidMount和componentWillUnmount

与钩子和靴子反应时,如何在手风琴打开时更改V形呢?

有条件的反应道具的打字稿声明

打字稿反应,如何设置数组的状态

反应挂钩打字稿如何更新状态

反应道具类型与打字稿

条件道具反应打字稿

打字稿:为通用 React 组件定义未声明的道具

如何在与Bootstrap反应时从导航栏构造模式?

如何在更新内容反应时添加淡入淡出过渡

在对钩子做出反应时,如何复制和排列然后反转它?

如何为 useReducer 输入状态和分派 - 打字稿和反应

反应打字稿如何打字

如何在打字稿中为aa子类(React.Component)编写类型定义?

如何找到我的打字稿/反应模块的声明?

如何在打字稿函数中声明类型为 number 的局部变量?

如何在打字稿中为 react thunk 声明类型并重用组件依赖项?

如何在打字稿中为方法链声明递归类型?