gpt4 book ai didi

reactjs - 如何修复 JSX 表达式必须有一个父元素?

转载 作者:行者123 更新时间:2023-12-02 21:01:20 26 4
gpt4 key购买 nike

我正在尝试在 native react 中切换模态。平面列表中的每个项目都应该有一个切换选项来打开模式。

我收到错误:JSX 表达式必须有一个父元素。

我尝试在 google 上搜索正确的语法,但找不到解决方案。

class CategoriesScreen extends Component {

state = {
modalVisible: false,
};

setModalVisible(visible) {
this.setState({ modalVisible: visible });
}

render() {
function Item({ title }) {
return (
<TouchableOpacity style={styles.item} onPress={() => {
this.setModalVisible(true);
}}>
<View>
<Text style={styles.title}>{title}</Text>
</View>
</TouchableOpacity>
<Modal
animationType="slide"
transparent={false}
visible={this.state.modalVisible}
onRequestClose={() => {
Alert.alert('Modal has been closed.');
}}>
<View style={{ marginTop: 22 }}>
<View>
<Text>Hello World!</Text>

<TouchableOpacity
onPress={() => {
this.setModalVisible(!this.state.modalVisible);
}}>
<Text>Hide Modal</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
};
return (
<SafeAreaView style={styles.container}>
<Text style={styles.heading}>Select a category for daily tasks.</Text>
<Text style={styles.subheading}>{`You will receive a daily task in this category.\nLet’s get consistent!`}</Text>
<FlatList
data={DATA}
renderItem={({ item }) => <Item title={item.title} />}
keyExtractor={item => item.id}
numColumns={2}
/>
</SafeAreaView>
);
}
}

我正在尝试为平面列表中的每一项打开一个唯一的模式。

最佳答案

您只能返回单个实体。要解决此问题,只需将您的返回包裹在 Item 中即可函数具有 <Fragment/> 元素(来自 react 包)。

Fragments let you group a list of children without adding extra nodes to the DOM.

这可以像这样完成:

import React, {Fragment} from 'react';
...
function Item({ title }) {
return (
<Fragment>
<TouchableOpacity style={styles.item} onPress={() => {
this.setModalVisible(true);
}}>
<View>
<Text style={styles.title}>{title}</Text>
</View>
</TouchableOpacity>
<Modal
animationType="slide"
transparent={false}
visible={this.state.modalVisible}
onRequestClose={() => {
Alert.alert('Modal has been closed.');
}}>
<View style={{ marginTop: 22 }}>
<View>
<Text>Hello World!</Text>

<TouchableOpacity
onPress={() => {
this.setModalVisible(!this.state.modalVisible);
}}>
<Text>Hide Modal</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
</Fragment>
)
};

希望这有帮助,

关于reactjs - 如何修复 JSX 表达式必须有一个父元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58477911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com