🟨 React
Легкая
🕐 1 story point

React: Инпут и счётчик символов

Сделай контролируемый инпут, храни его значение в состоянии и отображай длину строки. Счётчик не должен показывать значение больше 32.

Александр, тимлид React-стажировки

Контролируемые поля ввода. Управляй значением из state и показывай актуальную длину.

Что нужно сделать

  • Создай состояние для значения инпута.
  • Сделай инпут контролируемым: значение берётся из состояния, обновляется по onChange.
  • Отображай длину строки под инпутом, но не больше 32.

Финальный вид

Карточка с инпутом и счётчиком символов (ограничение 32). Финальный результат должен быть таким: Финальный результат

💡 Подсказка
👀 Решение
import React, { useState } from 'react';
import './styles.css';
 
export function TextInputCounter({ placeholder = 'Введите текст...' }) {
  const [value, setValue] = useState('');
 
  function handleChange(e) {
    setValue(e.target.value);
  }
 
  return (
    <article className="input-card" data-testid="input-card">
      <input
        className="text-input"
        type="text"
        placeholder={placeholder}
        value={value}
        onChange={handleChange}
        maxLength={32}
      />
      <p className="counter" aria-label="counter">{value.length}</p>
    </article>
  );
}
 
export default function App() {
  return (
    <main className="challenge-container">
      <section>
        <TextInputCounter />
      </section>
    </main>
  );
}

🧑‍💻 Это не баг! Это фича!

Редактор кода намеренно скрыт на мобильном.

Поверь, так лучше: я оберегаю тебя от искушения писать код в неидеальных условиях. Маленький экран и виртуальная клавиатура — не лучшие помощники для программиста.

📖 Сейчас: Изучи задачу, продумай решение. Действуй как стратег.

💻 Потом: Сядь за компьютер, открой сайт и реализуй все идеи с комфортом. Действуй как код-джедай!