Я пытаюсь установить ограничение на количество символов для поля ввода, но поле ввода имеет значение по умолчанию.
если ограничение на количество символов превышает лимит текста, должен отображаться с ограничением 0 (не всплывающее окно)
если я использую приведенный ниже код, он не работает нормально для моих требований (скажем, значение по умолчанию уже существует).
Могу ли я узнать, как включить значение по умолчанию и установить сообщение, если оно будет равно 0
class Company extends React.Component {
state = {
Title: this.props.selectedTable.Title,
chars_left: 50,
max_char:50
}
handleCharacterCount= (event) => {
const charCount = event.target.value.length;
const maxChar = this.state.max_char;
const charLength = maxChar - charCount;
this.setState({ chars_left: charLength });
//this.setState({sTitle: e.target.value});
}
render() {
return (
<div>
<textArea
type = "text"
maxLength = "50"
required
onChange = {this.handleCharacterCount}
value = {this.state.Title}/>
/>
<p>{this.state.chars_left}</p>
</div>
)
}
}
вниз до поля ввода
onChange сработает только при нажатии вне текстовой области. Если вам нужны немедленные обновления, используйте onInput.
вы имеете в виду, что код пишется, а не используется для изменения onInput
Нет, просто предлагаю улучшение.



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


Вы можете попробовать это
state = {
Title: this.props.selectedTable.Title,
chars_left: 50 - this.props.selectedTable.Title.length,
max_char:50
}
handleCharacterCount= (event) => {
const charCount = event.target.value.length;
const maxChar = this.state.max_char;
const charLength = maxChar - charCount;
this.setState({ chars_left: charLength,Title: event.target.value })}
render() {
return (
<div>
<textArea
type = "text"
maxLength = "50"
required
onChange = {this.handleCharacterCount}
value = {this.state.Title}/>
/>
{
!this.state.chars_left &&
<p>text has to appear at 0 limit</p>
}
<p>{this.state.chars_left}</p>
</div>)}
конечно, позволь мне проверить
но мне также нужно проверить символы значения по умолчанию
не понимаю. пожалуйста, объясни. Вы хотите также подсчитывать символы значения по умолчанию?
Я имею в виду, что у меня есть значения по умолчанию, которые отображаются в текстовом поле, это тоже будет учитываться
если есть 50 макс. символов, у меня уже есть имя по умолчанию ----- если имя по умолчанию 'XYZ', мой счет должен быть 47
в состоянии добавить. chars_left: 50 - this.props.selectedTable.Title.length
прокомментировал строку в моем вопросе ... это нормально
chars_left: 50 - this.props.selectedTable.Title.length ......... это должно работать. Ты хочешь это?
Я отредактировал свой ответ. Теперь вы можете увидеть код, который вам нужен на самом деле.
Мне нужно установить сообщение на основе ответа api, он должен сказать «данные успешно сохранены», только если его статус 200, могу ли я получить некоторые предложения
Где вы хотите разместить это сообщение? Можете ли вы попробовать: if (response.status === 200) {this.setState ({message: 'Данные успешно сохранены'})}
Должен ли я установить саму страницу действия?
на уровне компонентов, как мы узнаем статус ответа ??
Когда вы получите ответ api, вы можете установить объект состояния в соответствии с response.status. Если объект состояния истинен, вы можете показать сообщение или скрыть. Дай мне знать, получишь ты это или нет
Позвольте нам продолжить обсуждение в чате.
Должен ли я поддерживать какое-либо состояние редукции или из вкладки сети.
isfar Uddin AINur, не могли бы вы изучить этот вопрос stackoverflow.com/questions/50776961/…
Где вы хотите установить сообщение, если оно равно 0?