Das React Team Rendering announced, die seit 16 Reagieren:Typoskript + Reaktion, ein Array aus einer stateless funktionalen Komponente
You can now return an array of elements from a component’s render method.
Dies funktioniert für regelmäßige Klassenkomponenten in Typoskript, aber ich kann es nicht für staatenlos funktionelle an der Arbeit Komponenten.
Siehe this repo, wenn Sie für sich selbst reproduzieren möchten.
Code:
import * as React from 'react';
// See this example working in a non-TS environment: https://codesandbox.io/s/ppl3wopo8j
class Hello extends React.Component {
render() {
return <div>
<Foo />
<Bar /> {/* Error: 'JSX element type 'Element[]' is not a constructor function for JSX elements. */}
</div>;
}
}
class Foo extends React.Component {
render() {
return [<div>foo</div>, <div>fooz</div>];
}
}
function Bar() {
// Cannot render an array from a SFC
return [<div>bar</div>, <div>baz</div>];
}
Aufbau dieser snipper Ergebnisse in dem folgenden Fehler:
'JSX element type 'Element[]' is not a constructor function for JSX elements.
Property 'render' is missing in type 'Element[]'.'
Wie Sie sehen können, ein Array von einer regulären Klasse Komponente funktioniert Rendering, aber es funktioniert nicht, wenn ein Rendering Array von einer zustandslosen funktionalen Komponente.
Ich bin mir nicht sicher, ob das Problem mit meinem Code/Setup, den DefinitlyTyped-Reaktionstypen oder mit Typescript selbst liegt.
Nein, Sie Arrays zurückgeben können sogar aus staatenlos Funktionskomponenten. Siehe Beispiel: https://codepen.io/pawelgrzybek/pen/WZEKWj – Dane
Danke für den Hinweis. Sieht so aus, als wäre es ein Typfehler. –