2016-08-06 9 views
1

Typescriptで使用する場合、Reactコンポーネントのプロパティのデフォルト値を設定するにはどうすればよいですか?Typescriptに反応してデフォルトのプロパティ値を設定する方法は?

私はSEの別のquestionから、自分のプロパティのキーでオブジェクトとしてdefaultPropsという静的なクラス変数を宣言できたことがわかりましたが、これは私にとってはうまくいかないようです。

どういうわけか、静的変数defaultPropsはどこからでも呼び出されず、プロパティにもデフォルト値がありません。ここで

+2

たちはあなたの[MCVE](http://stackoverflow.com/help/mcve)を持つことができますか? :) – Alex

+2

いくつかのコードを提供できますか?静的なクラス変数として 'defaultProps'を定義することは私の仕事です。 – 1ven

+0

[TypeScriptを使用したReactコンポーネントのデフォルトのプロパティ値]の重複の可能性があります(http://stackoverflow.com/questions/37282159/default-property-value-in-react-component-using-typescript) – mixel

答えて

-1

は、私はコンストラクタでそれを行う方法は次のとおりです。

interface iProps { 
    value?: any; 
    disabled?: boolean; 
} 

export class MyComponent extends React.Component<iProps, {}> { 
    private value: any; 
    private disabled: boolean; 

    constructor(props: iProps) { 
     super(props); 

     var value: any = ""; 
     if (typeof this.props.value !== "undefined") { 
     value = this.props.value; 
     } 

     var disabled: boolean = false; 
     if (this.props.disabled) { 
     disabled = true; 
     } 
    } 

    handleClick(event) { 
     //Bla bla bla 
    } 

    render() { 
     return (
     <div> 
      <button onClick={this.handleClick.bind(this) } disabled={this.disabled}> 
       my button 
      </button> 
     </div> 
    ); 
    } //end render. 

    componentDidMount() { 
     //Bla bla bla 
    } 

    componentDidUpdate() { 
     //Bla bla bla 
    } 
} //end class. 
+0

このコードは、最初にMyComponentをdisabled = trueでレンダリングし、次のレンダリングでpropを削除します。 – truppo

関連する問題