Я пытаюсь получить какие-то данные от пользователя, чтобы автоматически стать Title Cased. Код мне кажется надежным, но, похоже, он не дает мне того результата, который мне действительно нужен. Это не связывает первую букву как прописную. Это код для ввода заголовка.
export function titleCase(str: string): string {
return !str
? ""
: str.toLowerCase()
.split(" ")
.map(function(word: string): string {
return word && word.length > 0 ? word.replace(word[0], word[0].toUpperCase()) : ""
})
.join(" ")
}
а затем я вызываю это в теге просмотра вот так ...
<Text style = {styles.providerNameTxt}>
{Scenes.Detail.titleCase(providerName)}
</Text>
<Text style = {styles.providerSpecialtyTxt}>
{Scenes.Detail.titleCase(providerSpecialty)}
</Text>
Разве это не должно работать? Когда пользователь переходит на input (providerName), ввод не вводит автоматически верхний регистр первой буквы. Не знаю почему. Этот файл называется detail.ts и находится в папке util / scene. Таким образом, использование Scenes.detail должно вызывать функцию. Если только моя функция не неправильная. Кроме того, в файле scene / detail.ts есть экспорт по умолчанию для titleCase. Раньше этого не было, поэтому я добавил его, но он все еще не работает так, как мне хотелось бы.
Нет смысла в том, чтобы titleCase был доступен на Scenes.Detail. Можете ли вы показать свою инструкцию по импорту для titleCase?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пытаться
str.replace(/\b(\w)/g, k => k.toUpperCase())
на любой строке str со словами, разделенными пробелами.
export const toTitleCase = (str) => {
return str.replace(
/\w\S*/g,
(txt) => {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
}
);
}
Объясните, пожалуйста, свой ответ и то, как он решает вопрос.