React native “原始文本”&引用;必须包装在显式文本组件中

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

我使用react本机组件listview呈现嵌套项,如下所示:

      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>
            })