Создавая приложение Waterbowl Checkin для 🐶s, я хотел иметь динамическое место для поля comment в отметке. Собаки могут быть непредсказуемыми, как мы знаем, поэтому я хотел внести некоторую случайность в заполнитель.
Мне все еще не хватает метода Ruby shuffle при работе с JavaScript, но я использовал этот обходной путь, чтобы перетасовать несколько возможных собачьих комментариев.
Вдохновленный классикой Сандры Бойнтон (и одной из любимых книг моих детей) Собачки, я собрал несколько собачьих восклицаний:
["Woof!", "Bark!", "Arf!", "Aroof aroof aroof!", "Yowww!", "Awhooo!", "Nnn nn nnnnn!"]
Чтобы захватить один из элементов массива полуслучайно:
["Woof!", "Bark!", "Arf!", "Aroof aroof aroof!", "Yowww!", "Awhooo!"]
.sort(function (a, b) { return 0.5 - Math.random() })[0])
И чтобы полностью перепроектировать его, сохранил его в состоянии с помощью хука useEffect:
const [randomDogNoise, updateRandomDogNoise] = useState("")
useEffect( () => {
updateRandomDogNoise(["Woof!", "Bark!", "Arf!", "Aroof aroof aroof!", "Yowww!", "Awhooo!"]
.sort(function (a, b) { return 0.5 - Math.random() })[0])
}, [])
Это позволило мне внести некоторую случайность в заполнитель формы и заставить моих пользователей (собак) гадать, когда дело доходит до их комментариев при регистрации:
<input type="text" placeholder={randomDogNoise} />
