Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
How do I persuade babel to let me define a Javascript array of consts?

I'm building my first expo/react app. I keep getting an "Unexpected token" error message in App.js:

export default class App extends React.Component {
   const [message, setMessage] = useState("...");

the error being in the [ of the line beginning const.

As best I can tell, this is a babel issue: this syntax was introduced in ES2015. AFAICS, this should be resolvable by adding @babel/preset-env to babel.config.js thus:

module.exports = function(api) {
  api.cache(true);
  return {
      presets: [
          '@babel/react',
          '@babel/env',
      ],
      plugins: [
          '@babel/proposal-class-properties',
      ],
  };
};

Bundling succeeds, but the error remains! What am I missing?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

The error is not because you are trying to use array de-structuring in general, it is because you are doing it inside the body of a class (where you can only declare properties).

React Hooks are only compatible with Function components anyway. You can't use them in Class components.

So you need to use Function Component syntax.

const App = () => {
   const [message, setMessage] = useState("...");
   // ...
}

export default App;

Further reading:

  • Classes in JavaScript (MDN)
  • Function and Class Components (React) (A brief summary)
  • React Component (API reference for the React component class definition)
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!