首页 > 解决方案 > Typescript React:我是否必须为超类构造函数指定参数。那会是什么论据?

问题描述

你好,所以整个事情对我来说并不是很清楚,我仍然对我的构造函数真正想要的具体参数感到困惑。如果对您来说很明显,您能告诉我构造函数的参数是什么,super()并且constructor()必须是什么?

import * as React from "react";
import styles from "./ScriptEditor.module.scss";
import { IScriptEditorProps } from "./IScriptEditorProps";
import {
  Dialog,
  DialogType,
  DialogFooter
} from "office-ui-fabric-react/lib/Dialog";
import {
  DefaultButton,
  PrimaryButton
} from "office-ui-fabric-react/lib/Button";
import { TextField } from "office-ui-fabric-react/lib/TextField";
import { loadStyles } from "@microsoft/load-themed-styles";
require("./overrides.css");

export default class ScriptEditor extends React.Component<
  IScriptEditorProps,
  any
> {
  **constructor(IScriptEditorProps, any) {
    super(IScriptEditorProps, any);**

    this._showDialog = this._showDialog.bind(this);
    this._closeDialog = this._closeDialog.bind(this);
    this._cancelDialog = this._cancelDialog.bind(this);
    this._onScriptEditorTextChanged = this._onScriptEditorTextChanged.bind(
      this
    );

    const uiFabricCSS: string = `
    .pzl-bgColor-themeDark, .pzl-bgColor-themeDark--hover:hover {
      background-color: "[theme:themeDark, default:#005a9e]";
    }
    `;
    loadStyles(uiFabricCSS);
    this.state = {
      showDialog: false
    };
  }

  public componentDidMount(): void {
    this.setState({ script: this.props.script, loaded: this.props.script });
  }
  private _showDialog() {
    this.setState({ showDialog: true });
  }

  private _closeDialog() {
    this.setState({ showDialog: false });
    this.props.save(this.state.script);
  }

  private _cancelDialog() {
    this.props.save(this.state.loaded);
    this.setState({ showDialog: false, script: this.state.loaded });
  }

  private _onScriptEditorTextChanged(text: string) {
    this.setState({ script: text });
  }

  public render(): React.ReactElement<IScriptEditorProps> {
    const viewMode = (
      <span dangerouslySetInnerHTML={{ __html: this.state.script }}></span>
    );

. . .

我保留了,return因为我认为它与我的问题无关。

到目前为止,我已经来回改变了一些东西,但我几乎不理解构造函数,我真的很恼火,我constructorsuper()班级想要什么参数。

标签: reactjstypescriptsharepoint-2010web-partssuper

解决方案


您需要props像这样传递给反应类构造函数:

constructor(props) {
    super(props)
    ..............
}

推荐阅读