通过 array.forEach() 添加子项到 <MenuOptions>

Add Children through array.forEach() to <MenuOptions>

我尝试了所有我能想到的方法,但似乎无法正常工作

我想从这样的数组中添加多个选项

<Menu renderer={renderers.SlideInMenu} ref={(ref) => statusRef = ref}>
    <MenuTrigger/>
        <TouchableWithoutFeedback onPress={this.onQuestionStatusButtonPressed}>
            <View style={styles.view_header_submit_icon}>
                <Icon style={styles.icon_header_submit} name={"dots-vertical"} />
            </View>
        </TouchableWithoutFeedback>
        <MenuOptions>
            {this.state.subjects.forEach((value) => {
                <MenuOption >
                    <View style={styles.view_option}>
                        <Text style={styles.text_option}>value.name</Text>
                    </View>
                </MenuOption>
            )}
        </MenuOption>
    </MenuOptions>
</Menu>

这对我不起作用 难道我做错了什么?并且数组中有项目,因为我用控制台调试了它并且它运行了 2 次但从未呈现

您的代码在语法上似乎不正确(例如额外的 </MenuOption>)并且您的触发器是空的,但外部可触摸..

其次 - forEach 将不起作用,因为它没有 return 值 - 请改用 map

我制作了简单的工作演示 https://snack.expo.io/SJBJkr7yQ,它没有任何问题

<Menu> <MenuTrigger text="Select action" /> <MenuOptions> <MenuOption onSelect={() => alert(`Save`)} text="Save" /> {this.state.subjects.map(s => <MenuOption key={s} text={s}/>)} </MenuOptions> </Menu>

专业提示:从最简单的工作示例(例如来自官方文档)开始并逐步添加内容,始终检查一切是否正常。