提问人:lazyCoder 提问时间:7/28/2022 更新时间:7/28/2022 访问量:147
如何在JSON驱动的UI(React)中添加回调函数?
How to add callback functions in JSON driven UI (React)?
问:
我正在React中研究JSON驱动的UI布局 下面是一个示例
{
component: "card",
children: [
{
component: "img",
src:
"https://images.pexels.com/photos/2877188/pexels-photo-2877188.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500"
},
{
component: "body",
children: [
{
component: "title",
children: "This is a title"
},
{
component: "subtitle",
children: "This is the subtitle"
},
{
component: "button",
children: "Click Me!",
onClickCFunction: "SOME CALLBACK FUNCTION"
}
]
}
]
}
因此,我使用 React.CreateElemene() 在 react 中渲染上述 JSON,并且在按钮中我想定义一个回调函数,当用户单击按钮时,它将运行该函数,甚至t !
这可能吗,我怎样才能做到这一点,有人可以帮助我吗?
答:
0赞
madze
7/28/2022
#1
我认为你要找的是评估。
评论
0赞
lazyCoder
7/28/2022
感谢您的回复。我会检查并恢复!所以我可以在 eval 包装器中编写一个函数吗?
0赞
madze
7/28/2022
如果将函数存储为字符串,则可以将其传递给 eval - 尽管这可能会带来一些安全风险(mozilla 文档中对此进行了说明)。
0赞
lazyCoder
7/28/2022
考虑到它有风险,那么有没有其他选择呢?
0赞
madze
7/28/2022
在不了解您的业务需求的情况下,很难确定,但一般来说,是的,可能还有另一种架构不需要在 JSON 中存储函数。也就是说,风险主要源于这些功能的来源。如果该功能可以以任何方式被恶意方更改/添加,那么这绝对是一种风险。但是,如果 JSON 中的函数是硬编码的,那么您可以只存储某种标识符,该标识符允许您引用相应的函数,而不是存储函数本身。
0赞
lazyCoder
7/28/2022
好的,感谢您的见解!那又是什么架构?
评论