Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

208
Visualizações
El componente React devuelve un objeto vacío cuando se procesa en el lado del servidor

Obtengo un comportamiento extraño cuando trato de implementar la representación del lado del servidor en una aplicación de reacción.

 ... Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports. ...

Me di cuenta de que hay un problema general con los archivos de procesamiento con la extensión JSX. Así es como se ve mi código.

./servidor/servidor.js

 app.use('/*', (req, res, next) => { const context = {}; const app = ReactDOMServer.renderToString( <App /> ); console.log(app) fs.readFile(path.resolve('./build/index.html'), 'utf-8', (err, data) => { if (err) { console.log(err); return res.status(500).send("Some Error") } return res.send( data.replace( '<div id="root"></div>', `<div id="root">${app}</div>` ) ) }) })

./servidor/index.js

 require("ignore-styles") require("@babel/register")({ ignore: [/(node_module)/], presets: ['@babel/preset-env', '@babel/preset-react'] }) require('./server')

./src/Aplicación.jsx

 import './App.scss'; import React from 'react'; function App() { return ( <div className='app'> <p>Sample</p> </div> ); } export default App;

./src/index.js

 import React from 'react'; import ReactDOM from 'react-dom'; import './index.scss'; import App from './App'; import reportWebVitals from './reportWebVitals'; import { BrowserRouter as Router } from "react-router-dom"; ReactDOM.hydrate( <Router> <React.StrictMode> <App /> </React.StrictMode> </Router>, document.getElementById('root') ); reportWebVitals();

Y el error ocurre cuando está en ../server/server.js:17:30 que es cuando se llama a ReactDOMServer.renderToString . El problema es que el componente se ve como un objeto vacío después de importarlo. Tengo la sensación de que es un problema con Babel, pero no estoy seguro.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Me encontré con el mismo problema recientemente con una configuración muy similar. Durante SSR, los componentes que tenían la extensión .js devolvieron los componentes de React esperados, mientras que los archivos .jsx devolvieron {} .

En mi caso cambié las importaciones de

 import App from './components/App'

a

 import App from './components/App.jsx'

y solucionó el problema. Después de esta modificación, tanto el renderizado del lado del servidor como del cliente devuelve los componentes esperados.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda