如何在JSON驱动的UI(React)中添加回调函数?

How to add callback functions in JSON driven UI (React)?

提问人:lazyCoder 提问时间:7/28/2022 更新时间:7/28/2022 访问量:147

问:

我正在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 !

这可能吗,我怎样才能做到这一点,有人可以帮助我吗?

JavaScript ReactJS JSON 回调

评论


答:

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
好的,感谢您的见解!那又是什么架构?