Ich habe, was ich hoffe, ist ein ziemlich normales Setup für die Codierung reagieren mit ES6-Syntax, nämlich ich benutze Babel zu transpile und Webpack, um den Code zu montieren.React, Babel - Nesting-Bedingungen innerhalb eines JSX-Blocks funktioniert nicht
Dies ist, wie ich Babel konfiguriert (aus package.json extrahiert)
"babel": {
"presets": [
["es2015", {"loose": true}],
"stage-0",
"react"
],
"plugins": [
"react-hot-loader/babel"
]
},
Wenn bedingt Rendering-Gehalt innerhalb eines JSX Block Reagieren verwenden, wenn ich dies tun
{showingVoterList && (
{!!message && (
<Panel header='Could not load voters' bsStyle='danger'>
<p>{message}</p>
</Panel>
)}
{!message && (
<p>Voter list goes here</p>
)}
)}
ich das bekommen Fehler:
Module build failed: SyntaxError: Unexpected token (53:11)
51 |
52 | {showingVoterList && (
> 53 | {!!message && (
| ^
54 | <Panel header='Could not load voters' bsStyle='danger'>
55 | <p>{message}</p>
56 | </Panel>
aber wenn ich das tue, es funktioniert gut
{showingVoterList && !!message && (
<Panel header='Could not load voters' bsStyle='danger'>
<p>{message}</p>
</Panel>
)}
{showingVoterList && !message && (
<p>Voter list goes here</p>
)}
Warum können die Bedingungen nicht verschachtelt werden?
See [hier] (https://github.com/facebook/react/issues/690) . Verschachtelte Bedingungen werden schnell unordentlich. Vielleicht tun Sie es draußen "render"? – Li357