मैंने अभी वेबपैक 2.2 में अपग्रेड किया है और अपने गाइड के माध्यम से पढ़ रहे हैं, जो अभी भी प्रगति पर एक काम है।React.createElement: प्रकार अमान्य है - एक स्ट्रिंग की उम्मीद है, लेकिन मिला: ऑब्जेक्ट
मुझे हॉट मॉड्यूल रीलोडिंग के साथ वेबपैक-डीवी-सर्वर का उपयोग करने के लिए अपना एप्लिकेशन सेट करने में कठिनाई हो रही है।
वेबपैक दस्तावेज़ीकरण के माध्यम से मैं जिस मार्गदर्शिका का पालन कर रहा था वह यहां है, लेकिन मुझे इसे विकास/उत्पादन अनुप्रयोग के साथ काम करने के लिए संशोधित करना है।
https://webpack.js.org/guides/hmr-react/
दो त्रुटियों मैं अनुसरण कर रहे हैं मिलता है ...
Uncaught Error: _registerComponent(...): Target container is not a DOM element.
at invariant (eval at <anonymous> (index.js:2), <anonymous>:44:15)
at Object._renderNewRootComponent (eval at <anonymous> (index.js:64), <anonymous>:311:44)
at Object._renderSubtreeIntoContainer (eval at <anonymous> (index.js:64), <anonymous>:401:32)
at render (eval at <anonymous> (index.js:64), <anonymous>:422:23)
at hotRenderer (eval at <anonymous> (index.js:73), <anonymous>:41:28)
at eval (eval at <anonymous> (index.js:73), <anonymous>:47:5)
at eval (eval at <anonymous> (index.js:73), <anonymous>:54:5)
at Object.<anonymous> (index.js:73)
at e (index.js:1)
at Object.<anonymous> (index.js:146)
और
Warning: React.createElement: type is invalid -- expected a string (for built-in components)
or a class/function (for composite components) but got: object.
printWarning @ warning.js?8a56:36
warning @ warning.js?8a56:60
createElement @ ReactElementValidator.js?a599:171
hotRenderer @ index.js?2018:30
(anonymous) @ index.js?2018:35
(anonymous) @ index.js?2018:25
(anonymous) @ index.js:73
e @ index.js:1
(anonymous) @ index.js:146
e @ index.js:1
(anonymous) @ index.js:1
(anonymous) @ index.js:1
मेरा मानना है कि समस्या यह है कि मेरे ऐप फ़ाइल निर्यात कर रहा है के साथ झूठ सकता है रेडक्स प्रदाता एक रैक राउटर राउटर लपेटने वाला एक घटक।
index.js
import './lib/styles.css'
import React from 'react'
import { render } from 'react-dom'
import App from './App'
if (process.env.NODE_ENV === 'development') {
const { AppContainer } = require('react-hot-loader')
const hotRender = (Component) => {
render(
<AppContainer>
<Component/>
</AppContainer>,
document.getElementById('root')
)
}
hotRender(App)
if (module.hot) {
module.hot.accept('./App',() => {
const NewApp = require('./App').default
hotRender(NewApp)
})
}
} else {
render(App, document.getElementById('app'))
}
App.js
import React from 'react'
import { Provider } from 'react-redux'
import { createStore } from 'redux'
import store from './redux/store'
import { Router, hashHistory } from 'react-router'
import routes from './routes'
let s = createStore(store,
process.env.NODE_ENV === 'development' ? (
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__()
) : null
)
const App =() => (
<Provider store={s}>
<Router history={hashHistory} routes={routes} />
</Provider>
)
export default App
आप पूरे पीआर परिवर्तन है कि जांच करने के लिए करना चाहते हैं, कि:
यहाँ दो अपराधी फ़ाइलें हैं बहुत ही अच्छा होगा! कोड यहां स्थित है: https://github.com/awitherow/aether/pull/64/files
मैं कुछ सीएसएस परिवर्तनों के लिए क्षमा चाहता हूं जो पीआर में भी फिसल गए हैं, लेकिन सभी वेबपैक 2.2 और बाद में अपग्रेड जो मैंने यहां किया है, संभावित रूप से संबंधित हैं!
संपादित
मुझे लगता है कि कुछ सुधारों, सरल लोगों का प्रयास किया है ... लेकिन वे कुछ भी हल नहीं कर रहे हैं।
- एक्स, एक div में App रैपिंग इतना है कि यह किसी भी तरह लगता होगा यह एक डोम तत्व था।
- एक्स अनुप्रयोग एक वर्ग का विस्तार घटक
स्पष्ट रूप से यह रेक्ट-हॉट-लोडर के साथ एक बहुत ही आम मुद्दा है, यहां बहुत सी चर्चाएं हैं: https://github.com/gaearon/react-hot-loader/issues/249 –