React native “原始文本”&引用;必须包装在显式文本组件中
我使用react本机组件listview呈现嵌套项,如下所示:React native “原始文本”&引用;必须包装在显式文本组件中,react-native,React Native,我使用react本机组件listview呈现嵌套项,如下所示: constructor() { super(); this.renderRow = this.renderRow.bind(this); const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); this.state = { dataS
constructor() {
super();
this.renderRow = this.renderRow.bind(this);
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
dataSource: ds.cloneWithRows([
[
{'main':'q', 'sub': 'y'}
],
[
{'main':'x', 'sub': 'f'},
{'main':'c', 'sub': 'b'}
]
]),
};
}
renderRow(rowData, section, row) {
const total = this.state.dataSource.getRowCount();
let rowView = rowData.map( x => {
return <View> <Text>{x['main']}</Text> <Text>{x['sub']}</Text> </View>
})
return (
<View>
{rowView}
</View>
);
}
render() {
return (
<View style={styles.container}>
<ListView style={styles.listView}
dataSource={this.state.dataSource}
renderRow={this.renderRow}
/>
</View>
);
}
constructor(){
超级();
this.renderRow=this.renderRow.bind(this);
const ds=new ListView.DataSource({rowHasChanged:(r1,r2)=>r1!==r2});
此.state={
数据源:ds.cloneWithRows([
[
{'main':'q','sub':'y'}
],
[
{'main':'x','sub':'f'},
{'main':'c','sub':'b'}
]
]),
};
}
renderRow(行数据、节、行){
const total=this.state.dataSource.getRowCount();
让rowView=rowData.map(x=>{
返回{x['main']}{x['sub']}
})
返回(
{rowView}
);
}
render(){
返回(
);
}
但我得到了以下错误:
原始文本“”必须包装在显式文本组件中
我无法跟踪此错误的来源
让rowView=rowData.map(x=>{
返回{x['main']}{x['sub']}
})
删除视图和文本组件之间的空格。使用制表符和enter键代替空格字符
let rowView = rowData.map( x => {
return <View>
<Text>{x['main']}</Text>
<Text>{x['sub']}</Text>
</View>
})
让rowView=rowData.map(x=>{
返回
{x['main']}
{x['sub']}
})
为了解决这个问题,我在整个文件中使用了regex search&replace,而replacement(\s)+主要是由于
之间的空格等原因导致了这个问题
解决这个问题的技巧是执行格式化文档(我使用的是VScode(IDE),您可以尝试使用任何具有代码样式功能的IDE)。按样式固定标记之间的空格会自动删除 这可能是
之间的空间吗?@Cherniv非常感谢。这就是问题所在。快速修复!使用“设置文档格式编辑器代码样式”选项,标记之间的空格将自动删除。
let rowView = rowData.map( x => {
return <View>
<Text>{x['main']}</Text>
<Text>{x['sub']}</Text>
</View>
})