Реакция: целевой контейнер не является элементом DOM - PullRequest
0 голосов
/ 29 мая 2020

Я использую реакцию в рельсах. Но когда я запускаю приложение, я получаю сообщение об ошибке: Неперехваченная ошибка: целевой контейнер не является элементом DOM.

Мой файл index.jsx выглядит так:

import React from 'react';
import ReactDOM from 'react-dom';
import {createStore, applyMiddleware} from 'redux';
import {Provider} from "react-redux";
import thunk from "redux-thunk";
import reducers from "../bundles/HelloWorld/reducers/index.js";
import App from "../bundles/HelloWorld/components/App"
let store = createStore(reducers, applyMiddleware(thunk))


ReactDOM.render(<Provider store={store}><App /></Provider>, document.getElementById('root'));

Кроме того, я использую это в application. html .erb вот так:

В чем может быть ошибка?

1 Ответ

1 голос
/ 29 мая 2020

Добавьте элемент с id='root 'на страницу, например,

ReactDOM.render(
    <Provider store={store}>
        <App />
    </Provider>, 
    document.body.appendChild(document.createElement("div"))
);

render ожидает элемент DOM в качестве второго аргумента, которого в вашем случае не существует. Вы можете установить его на самой странице или сгенерировать динамически, как показано выше.

...