У меня есть приложение Vue Js, использующее VueX.В одном из моих компонентов я вызываю метод для усечения некоторого текста.Этот усеченный метод находится в отдельном файле, который используется для небольших вспомогательных функций.И фрагмент текста, который я пытаюсь усечь, извлекается из состояния, которое извлекается из базы данных.
Предположим, что это пользовательский объект в моем состоянии:
userState: {
name: "John Doe",
bio: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum laborum amet, dolores molestiae voluptates ea animi fugit quo repudiandae facilis.",
age: 35
}
В моемшаблон Я называю био так:
<p>{{ truncate(userState.bio, 20, "...") }}</p>
В моих компонентных методах у меня есть следующий метод:
const helpers = require("@/utilities/helpers");
methods: {
truncate(text, length, ending) {
return helpers.truncateText(text, length, ending);
}
}
И метод в моих помощникахФайл:
export const truncateText = (str, length, ending) => {
if (length == null) {
length = 100;
}
if (ending == null) {
ending = '...';
}
if (str.length > length) {
return str.substring(0, length - ending.length) + ending;
} else {
return str;
}
}
И сообщение, которое я получаю:
TypeError: Cannot read property 'length' of undefined
Но странная часть заключается в том, что усеченный текст отображается в DOM ... даже с ошибкой вконсоль.
Есть идеи, что здесь происходит?
Заранее спасибо !!
РЕДАКТИРОВАТЬ:
Я должен упомянуть, что вызовuser,bio
без метода усечения я не получаю никакой ошибки, и био отображается нормально.