402's Dojo

React Native入门实例教程 - 开发遇到的问题汇总

最近一段时间在学习和实践React Native,做一些有趣有用总结和大家分享。这个系列文章可以在这里找到。

当前元素中有ListView并且报错时,注释掉之后下一次Reload仍然不成功。

示例代码:

<View style={[styles.container, {backgroundColor: 'purple'}]}>
<Text style={styles.welcome}>First Step</Text>
// <ListView>
// </ListView>
</View>

报错:

Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. Check the render method of `ListPage`.

解决办法:删除ListView的两行代码。
遗留问题:问什么注释代码后仍然报错?可能原因是JSX中不支持//来注释。

require和uri读取图片问题

示例代码:

var imgSource = require(THUMB_URLS[rowHash % THUMB_URLS.length]);
console.log("row hash:" + rowHash + " row:" + rowHash % THUMB_URLS.length)
var imgPath = THUMB_URLS[rowHash % THUMB_URLS.length];
console.log("img path:" + imgPath)
var imgSource = {
uri: THUMB_URLS[rowHash % THUMB_URLS.length],
};
console.log("image source:" + imgSource.uri)

报错:

无法找到图片

解决办法:
遗留问题:

Unexpected token '<'

SyntaxError: Unexpected token '<':集成到项目中之后加载js的时候遇到此问题。分析原因是当前JS解析不支持JSX,因此将<视为非法的JS字符。
问题原因:不应该直接访问index.ios.js,而是访问index.ios.bundle,bundle文件才是经过压缩之后的纯js文件。
解决办法:http://localhost:8081/index.ios.js?platform=ios&dev=true改为:http://localhost:8081/index.ios.bundle?platform=ios&dev=true

Where to go

React Native入门实例教程 - 项目打包发布

评论