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

时间:2018-05-22 16:06:02

标签: react-native-popup-menu

我尝试了所有我能想到的东西,而且我似乎无法正常工作

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

<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次但从不渲染

1 个答案:

答案 0 :(得分:0)

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

其次 - forEach因为没有返回值而无法工作 - 请改用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>

Pro-tip:从最简单的工作示例开始(例如,从官方文档中),并逐步添加一些事情,检查一切是否正常。