一、Element type is invalid:expected a string (for built-in compoenets)or a class/function (for composite components)but got:undefined....javascript
這個錯,是說沒有export出要使用的組件,但是我找了很久,沒有發現究竟是什麼緣由引發。java
這個組件在react
看網上說能夠 數組
import List_view from './scene/mine/List'
替換成下面這樣,引入。我試了並無用。
import {List_view} from './scene/mine/List'
通過層層剝離試驗,發現問題出在這段代碼裏面,這裏就不貼代碼了,就只分析下這個
StackNavigator方法裏爲何出錯呢?
const RN1 = StackNavigator({ Home: { screen: HomeScene, navigationOptions: { title: 'My Chats', }, }, Profile: {screen: List_view}, });
忽然的好了,一頭霧水的好了。babel
最後發現是自定義的 函數
tabBarIcon和 NavigationItem 引入有問題。
二、本地圖片 循環變量 :post
const img_arr = [require('./my-img-1.png'),require('./my-img-2.png'),require('./my-img-3.png')]
將你須要的圖片以require的方式一個個push進數組,這樣就符合RN的圖片引用規則了。 而後經過<Image source={img_arr[0]} /> 這樣的方式引用ui
class xx extends Component{}
是ES6的寫法,會自動繼承Component裏面的屬性React.createClass({})
是React的ES5寫法,會生成一個React Componentthis
最明顯的區別固然是寫法的不一樣,這個很少說,主要是若是用第一種寫法,須要用babel進行編譯,才能使用spa
React.createClass({})
會自動綁定下面全部方法this,而第一種寫法不會(箭頭函數例外),因此纔會看到不少用第一種寫法的人在事件的callback上面用'bind(this)'來進行綁定。
感受第一種方法比較好,多是由於我以前比較喜歡寫java的緣由,更喜歡ES6的寫法,感受更簡潔一點。