使用函数Javascript / React中的字符串动态调用函数/变量

CherryPoppins

我试图找到一种方法来动态调用给定字符串的函数或引用给定字符串的变量。例如:

import React, {useState} from 'react'

const array = [
  {
    text: 'count1',
    setFunctionName: 'setCount1',
    otherdata: {}
  },
  {
    text: 'count2',
    setFunctionName: 'setCount2',
    otherdata: {}
  }
]

const myFunction = () => {
  const  [count1, setCount1] = useState(0)
  const  [count2, setCount2] = useState(0)

  return(
     <div>
       {array.map((item) => {
          // I want to use item.text to reference the correct count variable
          // I want to use item.setFunctionName to change the correct count 
        })}
     </div>
  )
}

特定的用例是我想创建一个可重复使用的侧边栏菜单,其中链接的数据存储在单独文件中的对象数组中。一些菜单项将具有可折叠的子菜单,我需要使用状态来管理子菜单的打开和关闭。例:

import { Button, Collapse } from 'react-bootstrap'

function Example() {
      const [open, setOpen] = useState(false);
    
      return (
        <>
          <Button
            onClick={() => setOpen(!open)} //**I want to dynamically set this when mapping over the array**
          >
            click
          </Button>
          <Collapse in={open}> //**I want to dynamically set this when mapping over the array**
            <div id="example-collapse-text">
              This is example collapsed text
            </div>
          </Collapse>
        </>
      );
    }
Sly_cardinal

如果您不希望一直移动useReducer到某个位置那么最好保留一个对象,useState而不是useState对每个单独的字段进行单独的调用:

  import React, {useState} from 'react'

  const array = [
    {
      text: 'count1',
      otherdata: {}
    },
    {
      text: 'count2',
      otherdata: {}
    }
  ]

  const myFunction = () => {
    // This could even be initialised based on the items in `array`
    const  [count, setCount] = useState({
      count1: 0,
      count2: 0,
    });

    return(
       <div>
         {array.map((item, index) => {
            // I want to use item.text to reference the correct count variable
            const countValue = count[item.text];
            
            const updateCount = () => {
              setCount((prevCount) => {
                return {
                  ...prevCount,
                  [item.text]: prevCount[item.text] + 1,
                };
              });
            };
            
            return (
              <button key={index}
                onClick={updateCount}
              >{item.text}: { countValue }</button>
            );
          })}
       </div>
    )
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用动态字符串变量调用Python函数

来自分类Dev

使用特定字符串调用JavaScript函数

来自分类Dev

Javascript:使用字符串调用函数

来自分类Dev

从字符串中调用函数

来自分类Dev

从jQuery中的字符串调用函数

来自分类Dev

从字符串中调用PHP函数

来自分类Dev

Javascript按窗口数组中的函数调用[字符串]

来自分类Dev

Javascript中的解析(字符串)函数调用和参数

来自分类Dev

如何在Javascript函数中传递字符串变量?

来自分类Dev

带字符串的Javascript调用函数

来自分类Dev

在Racket中调用动态函数;或从字符串中获取过程

来自分类Dev

从Python中可调用的字符串中创建动态函数?

来自分类Dev

在Racket中调用动态函数;或从字符串中获取过程

来自分类Dev

JavaScript变量/字符串函数?

来自分类Dev

JavaScript变量/字符串函数?

来自分类Dev

使用字符串在python中调用导入的函数

来自分类Dev

使用字典从字符串中调用函数

来自分类Dev

在onclick函数[javascript]之后使用循环从数组中调用字符串

来自分类Dev

从字符串变量调用非全局函数

来自分类Dev

在名称由字符串变量定义的类中调用已知函数(带有参数)

来自分类Dev

将字符串中的变量值替换为函数调用

来自分类Dev

如何从带有参数的变量中存储的字符串调用PHP函数

来自分类Dev

定义要在函数调用中由线程访问的全局常量字符串变量

来自分类Dev

使用包含函数名称的字符串调用函数

来自分类Dev

Lua 使用函数名(字符串)调用函数

来自分类Dev

SyntaxError:JavaScript函数中未终止的字符串文字调用php函数

来自分类Dev

Javascript 中的字符串构造函数

来自分类Dev

如何使用字符串按名称动态调用Python函数?

来自分类Dev

动态字符串数组:外部函数中的分配

Related 相关文章

  1. 1

    使用动态字符串变量调用Python函数

  2. 2

    使用特定字符串调用JavaScript函数

  3. 3

    Javascript:使用字符串调用函数

  4. 4

    从字符串中调用函数

  5. 5

    从jQuery中的字符串调用函数

  6. 6

    从字符串中调用PHP函数

  7. 7

    Javascript按窗口数组中的函数调用[字符串]

  8. 8

    Javascript中的解析(字符串)函数调用和参数

  9. 9

    如何在Javascript函数中传递字符串变量?

  10. 10

    带字符串的Javascript调用函数

  11. 11

    在Racket中调用动态函数;或从字符串中获取过程

  12. 12

    从Python中可调用的字符串中创建动态函数?

  13. 13

    在Racket中调用动态函数;或从字符串中获取过程

  14. 14

    JavaScript变量/字符串函数?

  15. 15

    JavaScript变量/字符串函数?

  16. 16

    使用字符串在python中调用导入的函数

  17. 17

    使用字典从字符串中调用函数

  18. 18

    在onclick函数[javascript]之后使用循环从数组中调用字符串

  19. 19

    从字符串变量调用非全局函数

  20. 20

    在名称由字符串变量定义的类中调用已知函数(带有参数)

  21. 21

    将字符串中的变量值替换为函数调用

  22. 22

    如何从带有参数的变量中存储的字符串调用PHP函数

  23. 23

    定义要在函数调用中由线程访问的全局常量字符串变量

  24. 24

    使用包含函数名称的字符串调用函数

  25. 25

    Lua 使用函数名(字符串)调用函数

  26. 26

    SyntaxError:JavaScript函数中未终止的字符串文字调用php函数

  27. 27

    Javascript 中的字符串构造函数

  28. 28

    如何使用字符串按名称动态调用Python函数?

  29. 29

    动态字符串数组:外部函数中的分配

热门标签

归档