gpt4 book ai didi

javascript - react 动态上下文菜单/子菜单

转载 作者:行者123 更新时间:2023-11-30 11:06:36 24 4
gpt4 key购买 nike

使用 React 上下文菜单,在应用时动态创建带有子菜单的菜单,我能够成功呈现菜单,但我无法让子菜单工作。

import React, { Component } from 'react';
import ContextMenuTrigger from 'src/ContextMenuTrigger';
import ContextMenu from 'src/ContextMenu';
import MenuItem from 'src/MenuItem';
import SubMenu from 'src/SubMenu';

const MENU_TYPE = 'SIMPLE';

const targets= [
{
name: 'Banana',
},
{
name: 'Apple',
subname: [
{
value: 'Red Apple',
description: 'description for red apple'
},
{
value: 'Green Apple',
description: 'description for green apple'
}
]
},
{
name: 'Grapes',
},
{
name: 'Orange',
subname: [
{
value: 'Orange Juice',
description: 'description for Orange'
},
{
value: 'Orange Color',
description: 'description for Orange'
}
]
}
];



export default class SimpleMenu extends Component {
constructor(props) {
super(props);
}

render() {
return (
<div>
<ContextMenuTrigger id={MENU_TYPE}>
<div className='well'>right click menu</div>
</ContextMenuTrigger>

<ContextMenu id={MENU_TYPE}>
{targets.map((item) => {
return (
<MenuItem>
{item.name}
<SubMenu>
{item.subname.map(action => {
{action.value}
})}
</SubMenu>
</MenuItem>
)
})}
</ContextMenu>
</div>
);
}
}

我在以下方面遇到错误:

 targets.subname.map(action => {{action.value}})}                                                   

错误:TypeError:item.subname 未定义

有没有更好的方法映射抛出嵌套对象?

目标是从对象动态构建菜单和子菜单。

最佳答案

我想你想要 item.subname(不是 targets.subname)然后你想添加一个存在检查因为不是所有的项目都有一个 subname 字段。

更新存在性检查:

{item.subname && item.subname.map()}

关于javascript - react 动态上下文菜单/子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55347282/

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