gpt4 book ai didi

javascript - 如何从子状态更改父状态 - Mobx 状态树?

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

我正在尝试使用 Mobx 状态树在 reactjs 中创建导航。

现在我有一个带有图标列表的瘦垂直导航栏。现在我想做的是向某些子菜单项添加子菜单项。单击这些按钮时,导航会从窄变宽(即展开)并显示子菜单项。一旦用户点击其中一个,导航就会回到瘦版。

我认为我需要的是一种方法,当在我的父存储中单击一个图标时,一个标志设置为“展开”,但我不知道如何在子项被单击时设置它。

import { types } from "mobx-state-tree";
import NavItem from "./NavItem.js";
const NavStore = types
.model("NavStore", {
expanded: false,
nav_items: types.array(NavItem)
})
.actions(self => ({}))
.views(self => ({}))
.create({

});

export default NavStore;


import { types } from "mobx-state-tree";

const NavItem = types
.model("NavItem", {
expands: false,
title: types.string
})
.actions(self => ({
itemClicked() {

}
}))
.views(self => ({}));

export default NavItem

最佳答案

您需要导入 getParent 和(可选)hasParent 函数:

import { types, getParent, hasParent } from ‘mobx-state-tree’

然后在你的 Action 中调用父级的 Action :

if (hasParent(self)) {
getParent(self).someAction(someParams);
}

关于javascript - 如何从子状态更改父状态 - Mobx 状态树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50689654/

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