ReactJS: Как я могу передать строку для использования в качестве имени функции? - PullRequest
1 голос
/ 10 января 2020

Я создаю меню с помощью React. Как я могу передать строку компоненту, чтобы использовать ее в качестве имени функции?

Что работает:

<Link to={ROOM({ roomId })}>home</Link>

Я сейчас занимаюсь рефакторингом компонентов. У меня есть компонент MobileMenu со ссылкой, определенной как:

  <MobileMenuLink service={'ROOM'} />

Во втором компоненте я определил MobileMenuLink как:

const MobileMenuLink = ({ style, className, roomId, service }) => {
  return (
    <Base style={style} className={className}>
      <MenuLink>
        <Link to={service({ roomId })}>home</Link>
      </MenuLink>
    </Base>
  )
}

Как это возможно?

1 Ответ

3 голосов
/ 10 января 2020

Не передавайте строку, передайте функцию ROOM в MobileMenuLink:

<MobileMenuLink service={ROOM} />

И вызовите service, как вы делаете сейчас, потому что это функция:

<Link to={service({ roomId })}>home</Link>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...