0
我正在嘗試爲所有可重用反應組件創建節點模塊。我在導入jsx文件時被卡住了。 我有一個基本的jsx模塊,即組件文件夾中的greeting.jsx。創建反應組件的npm模塊時出錯
//greeting.jsx
import React from 'react';
export default class Greeting extends React.Component {
render() {
return (
<p>Hello World</p>
)
}
}
文件夾結構: -
- index.js
- components
¦-- Greeting
¦-- greeting.jsx
¦-- <Other Modules like Greeting>
index.js其中進口的所有組件和它們導出
//index.js
import Greeting from './components/Greeting/greeting.jsx';
export default {
Greeting
};
當我必須使用的問候語模塊我必須導入模塊。就像下面的代碼一樣。但是,這樣做使我的錯誤頁面上
import React from 'react';
import ReactDOM from 'react-dom';
import GreetingModule from './index.js';
ReactDOM.render(<GreetingModule />, document.getElementById('content'));
錯誤: -
warning.js:45 Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).
invariant.js:39 Uncaught Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
這就是我現在卡住。雖然如果我直接導入jsx文件(如下圖),那麼它的工作原理。
import React from 'react';
import ReactDOM from 'react-dom';
import GreetingModule from './components/Greeting/greeting.jsx';
ReactDOM.render(<GreetingModule />, document.getElementById('content'));
但是,這不是我想要做的,因爲我想創建一個新公共管理模塊的方式和我的index.js應該導出所有的反應成分。
我曾嘗試使用Google創建npm模塊進行反應組件,但找不到任何東西。請幫助解決問題
轉換後的我的index.js看起來像這樣 – user913436
我在評論中看不到您的代碼。嘗試更新您的原題 – Amey
我終於搞定了。我不得不這樣做('問候')。default.Greeting&有幾個browserify配置,我不得不這樣做。這個鏈接幫助了我 - http://stackoverflow.com/questions/30386317/babelify-parseerror-on-import-module-from-node-modules#answers – user913436