Skip to content

Instantly share code, notes, and snippets.

@dlmanning
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dlmanning/d1bc66b50e694d8ebe82 to your computer and use it in GitHub Desktop.
Save dlmanning/d1bc66b50e694d8ebe82 to your computer and use it in GitHub Desktop.
Why doesn't the spread operator work in JSX?
import { default as React, Component } from 'react';
function makeElements () {
return [
<h1>Hello</h1>,
<h1>World,</h1>,
<h1>How</h1>,
<h1>are</h1>,
<h1>you?</h1>
]
}
class App extends Component {
render () {
return <div>{...makeElements()}</div>
}
}
var output = React.renderToString(<App/>)
console.log(output);
/* Results in a syntax error:
SyntaxError: /Users/david/node/spread/spread.js: Unexpected token (15:17)
13 | class App extends Component {
14 | render () {
> 15 | return <div>{...makeElements()}</div>
| ^
16 | }
17 | }
18 |
*/
import { default as React, Component } from 'react';
function makeElements () {
return [
<h1>Hello</h1>,
<h1>World,</h1>,
<h1>How</h1>,
<h1>are</h1>,
<h1>you?</h1>
]
}
class App extends Component {
render () {
return React.createElement('div', ...makeElements());
}
}
var output = React.renderToString(<App/>)
console.log(output);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment