Создавая приложение 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} />