Я использую styled-components в качестве решения для стилизации для React. У них есть хороший подход, который использует шаблонные литералы для интерполяции CSS. Литералы шаблона передаются реквизит компонента, так что вы можете сделать что-то вроде: Определение функции внутри литерала шаблона
const PasswordsMatchMessage = styled.div`
background: ${props => props.isMatching ? 'green' : 'red'};
`
Результата является компонентом, который оказывает div
тега либо с зеленым или красным цветом фона в зависимости от значения isMatching
. Выше будет использоваться через JSX так:
<PasswordsMatchMessage isMatching={doPasswordsMatch}>...</PasswordsMatchMessage>
Каждый раз, когда значение props
изменений, эта строка будет повторно интерполированным. Что, наконец, приводит меня к моему вопросу:
Определяет ли функция стрелки, определенная внутри литерала шаблона, каждый раз, когда шаблонный литерал интерполируется?
Если да, то я могу рассмотреть возможность создания функций вне литерала шаблона и просто передать их, например.
const PasswordsMatchMessage = styled.div`
background: ${isMatchingFn};
`
Я не понимаю, почему это не сработает. Вы протестировали его? –
@ KeithA это действительно работает, это не мой вопрос. Я только что редактировал свой пост, чтобы сделать вопрос более ясным, так как он немного похоронил;) – maxedison
Хммм. Я не уверен. Есть ли причина для вашего вопроса? –