Как я могу заставить компонент, стилизованный вне диапазона, влиять на реквизиты другого стилизованного компонента?

#reactjs #styled-components

#reactjs #styled-components

Вопрос:

Когда кто-то вводит входное значение, выходящее за пределы заранее определенного диапазона, я хочу показать сообщение. Я знаю, как это сделать в html / css (пример здесь: https://developer.mozilla.org/en-US/docs/Web/CSS/:out-of-range ), но я изо всех сил пытаюсь повторить эту же функциональность, используя стилизованные компоненты. Вот несколько примеров кода:

 const ErrorLabel = styled.label`
`;

const Input = styled.input`
    // width, height, background-color, border, font-size, margin, padding, color props

    amp;:out-of-range{
        background-color: rgba(255, 0, 0, 0.5);

    }
    amp;:out-of-range   ${ErrorLabel}:after {
        content: 'hi! im after';
      }

`;
 

И тогда мой компонент возвращает код, подобный этому (поэтому теги ввода и ошибки не совсем одинаковые):

                 <div style = {{other props}}><Input 
                    id = {"value1"}
                    name = {"value1"}
                    min = "5"
                    max = "10" 
                    maxLength="8"
                    onChange = {onChange("result")} 
                    value = {result}/></div>
            <ErrorLabel for="value1">is</ErrorLabel>
 

Комментарии:

1. Требуется ли перенос входных данных внутри div?

2. @lissettdm Я могу и, вероятно, должен реорганизовать свой код, чтобы мне не нужен был div, и я мог создавать компоненты ввода и метки. Облегчит ли это ответ на этот вопрос?

3. Просто поместите <ErrorLabel> внутри div, и это сработает.

4. @CoPham Это сработало, спасибо!