Лучшая практика создания компонента выбора значков

#javascript #reactjs #typescript #components

Вопрос:

Ну, я работаю над проектом с несколькими репо, в котором я сталкиваюсь со следующей проблемой при реализации библиотеки компонентов моего проекта, касающейся выбора значков.

Я создал прототип своих значков в соответствии с желанием проекта, но пришло время для реализации, и я не знаю, как их правильно разместить, поэтому я хотел бы устранить это сомнение.

Изначально я реализовал это так:

 import React from 'react'; import * as Icons from 'my-icons-lib';  function Icon(props: any) {  const IconSettings = {  Name: props.IconName,  Color: props.IconColor,  Height: props.IconHeight,  Width: props.IconWidth  }   const IconSelected = Icons[IconSettings.Name]  return(  lt;IconSelected  {...IconSettings.Color}  {...IconSettings.Height}  {...IconSettings.Width}  /gt; ); }  export default Icon;   

Помимо окончательного проекта, в котором будут использоваться эти компоненты, этот в данном случае будет использоваться для визуализации моего значка в соответствии со значением, переданным реквизитом.iconName, который должен искать в массиве значок, который я хочу использовать.

И когда он получит ответ, он будет использоваться таким образом при окончательной сборке репо:

Если да, используйте phoneIcon для передачи реквизита.Меня зовут.

 lt;PhoneIcon color="#3457f" /gt;  

Однако при попытке сделать это поиск, который будет выполняться const IconSelected = Icons[IconSettings.Name] , не выполняется, потому что, по-видимому, он не может получить доступ к индексу, в котором должно быть найдено значение в этом массиве моей библиотеки значков.

Он даже возвращает ошибку, из-за которой он:

 Binding element 'IconSettings.Name' implicitly has a type 'any'.ts(7031)  

Итак, что я должен сделать, чтобы он мог работать должным образом? Какова хорошая практика для этого?