При работе с React и создании кнопок вы можете столкнуться с сообщением об ошибке «Нарушение инварианта: заголовок кнопки должен быть строкой». Эта ошибка возникает, когда свойство titleкомпонента Button не предоставляется в виде строки. В этой статье мы рассмотрим несколько способов устранения этой ошибки, а также приведем примеры кода.
Метод 1: убедитесь, что свойство title является строкой.
Самое простое и понятное решение — убедиться, что свойство title, передаваемое компоненту Button, является строкой. Вы можете использовать оператор typeof, чтобы проверить тип и выдать ошибку, если это не строка. Вот пример:
import React from 'react';
const Button = ({ title }) => {
if (typeof title !== 'string') {
throw new Error('The title prop of a Button must be a string');
}
return <button>{title}</button>;
};
export default Button;
Метод 2. Преобразование свойства title в строку.
Если свойство titleможет иметь разные типы и вы хотите корректно обрабатывать нестроковые значения, вы можете преобразовать значение в строку. строку с помощью метода toString(). Вот пример:
import React from 'react';
const Button = ({ title }) => {
const coercedTitle = title.toString();
return <button>{coercedTitle}</button>;
};
export default Button;
Метод 3. Укажите значение по умолчанию или резервное значение
Чтобы полностью избежать ошибки, вы можете указать значение по умолчанию или резервное значение для свойства title. Это может быть полезно, если реквизит titleявляется необязательным. Вот пример:
import React from 'react';
const Button = ({ title }) => {
const defaultTitle = 'Default Title';
return <button>{title || defaultTitle}</button>;
};
export default Button;
Ошибку «Нарушение инварианта: заголовок кнопки должен быть строкой» в React можно устранить различными методами. Вы можете гарантировать, что свойство titleвсегда является строкой, преобразовать его в строку, если оно может иметь разные типы, или предоставить значение по умолчанию или резервное значение. Реализуя эти методы, вы сможете корректно обработать ошибку и обеспечить правильное функционирование ваших компонентов React.