I have the following component that renders a series of components. However, I downloaded React 16.2 and tried to use fragments instead of divs, but I get the following error:
Error in ./src/containers/answers.js Syntax error: Unexpected token (24:5) 22 | 23 | return ( > 24 | <> | ^ 25 | {AnswersCard} 26 | </> 27 | )
Why am I getting this error when fragments are supposed to be able to replace divs in React 16.2?
question ? AnswersCard = ( question.answers.sort(function(a,b) { return (a.count < b.count) ? 1 : ((b.count > a.count) ? -1 : 0)} ).map(answer => <Answer key={answer.id} answer={answer} questionId={question.id} /> )) : AnswersCard = ( <p>Loading...</p> ) return ( <> {AnswersCard} </> ) } }
The JavaScript exceptions "unexpected token" occur when a specific language construct was expected, but something else was provided. This might be a simple typo.
Short Syntax You can use <></> the same way you'd use any other element except that it doesn't support keys or attributes.
So, in Conclusion, React Fragments help wrap multiple elements/components together as it is better optimized, but they should only be used when needed. If one needs a wrapper for JSX styling, use a div instead. If you want to learn React.
Fragments can have key props! To specify a key for a fragment, you'll need to use the standard JSX element syntax; you can't use the new <></> syntax.
As per the documentation, the syntax <></>
is not supported by all tools and they encourage you to use <React.Fragment>
instead
Check this documentation on Support for Fragment syntax
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With