react-native-echarts在Debug模式显示正常,Release不显示

原因:

echart库的tpl.html文件未读取到,release版本只能通过uri加载资源

参考

1
2
3
4
5
For Android

1. 把tpl.html文件放到android/app/src/main/assets文件夹中
2. 修改native-echarts库文件src/components/Echarts/index.js
source={require('./tpl.html')} ==> source={{uri:'file:///android_asset/tpl.html'}}

react-native-echarts使用formatter: function()无法显示

原因:

toString.js文件被覆盖,在作者修复之前,只能手动修改

参考

1
2
3
4
5
6
7
For Android

1. 修改src/util/toString.js文件,如下

.replace('\"~--demo--~', '').replace('~--demo--~\"', '')
.replace(/\\n/g, '').replace(/\\\"/g, "\"");
//最后一个replace将release模式中莫名生成的\"转换成"

TabView子页面实现页面切换(react-native-scrollable-tab-view)

在父页面使用goToPage(pageIndex)即可实现页面切换

但是在子页面中点击非Tab切换页面,同样需要手动调用goToPage()

然而,goToPage应该如何传到子页面

参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
In the parent component (ScrollableTabView)

constructor() {
super();
this.state = {
tabsRef: null,
}
}

componentDidMount() {
this.setState(() => {
tabsRef: this.refs.Tabs
});
// The this.refs.Tabs is now defined, and passed to the components
}

<ScrollableTabView activeTab={1} ref="Tabs">
<Subtab tabsRef={this.state.tabsRef} tabLabel="a" />
<Subtab tabsRef={this.state.tabsRef} tabLabel="b" />
<Subtab tabsRef={this.state.tabsRef} tabLabel="c" />
</ScrollableTabView>

In the child component

使用 this.props.tabsRef.goToPage(index)