Type '{ error: string; }' is not assignable to type 'string'
Данный код вызывает ошибку Type '{ error: string; closeCallback: () => void; }' is not assignable to type 'string'.
this.state.errorInfoForShow &&
<StampErrorModal
error={this.state.errorInfoForShow}
closeCallback={this.closeErrorInfoModal}
/>
Хотя типы в функции прописаны верно
const StampErrorModal = (error: string | null, closeCallback: () => any) => {
return(
stampErrorModalTemplate(error, closeCallback)
);
}
export default StampErrorModal;
Причём всё работает, если изменить
<StampErrorModal
error={this.state.errorInfoForShow}
closeCallback={this.closeErrorInfoModal}
/>
на
StampErrorModal(this.state.errorInfoForShow, this.closeErrorInfoModal)
Но мне необходимо не трогать модуль, в котором вызывается код, а изменять только функцию StampErrorModal
Ответы (1 шт):
Автор решения: Genrih Fetischev
→ Ссылка
В функциональный реакт компонет пропсы попадают не как список аргументов, а как поля в объекте с пропсами, т.е. когда ты передаешь в компонент пропсы:
<StampErrorModal
error={this.state.errorInfoForShow}
closeCallback={this.closeErrorInfoModal}
/>
то в функции StampErrorModal ты получишь один аргумент props (объект) с полями error и closeCallback
попробуй сделать так:
type Props = {
error: string | null,
closeCallback: () => any
}
const StampErrorModal = ({error, closeCallback}: Props ) => {