reactjs - TypeScript ReactDOM Egenskapen 'type' saknas på komponenten


Får följande felmeddelande:

Error   TS2345  Argument of type 'typeof SomeComponent' 
is not assignable to parameter of type 'ReactElement<{}>'.
Property 'type' is missing in type 'typeof SomeComponent'.

Fick följande TypeScript-kod:

import * as React from 'react';
import * as ReactDOM from 'react-dom';

interface IProps{}    
interface IState {}

class SomeComponent extends React.Component<IProps, IState> {
    render() {
        return <div />;
    }
}

var component = SomeComponent;
var root = document.getElementById("root");

ReactDOM.render(component , root);

Jag försökte följande:

class SomeComponent extends React.Component<IProps, IState> {
    render() {
        return <div />;
    }

    get type() {
        return "test";
    }
}

Svar #1

Borde vara något som:

interface IProps{}    
interface IState {}

class SomeComponent extends React.Component<IProps, IState> {
    render() {
        return <div />;
    }
}

ReactDOM.render(<SomeComponent /> , document.getElementById("root"));

Du skickar inte komponentklassen till render-funktionen, du måste skicka instansen.


Redigera

Det här :

var component = SomeComponent;

Tilldelar en referens till klassen SomeComponent till variabeln component, vilket betyder att om du gör det så kan du göra båda och de är samma:

var componentInstance1 = <SomeComponent />
var componentInstance2 = <component />

Om du inte vill använda jsx/tsx-notationen måste du när du skapar komponenten skicka props:

var component = new SomeComponent(props);

Relaterade artiklar