У меня есть вход select, где я устанавливаю значения в виде чисел:
<Field name="freq" component="select" className="form-control">
<option />
<option value={0}>Hourly</option>
<option value={1}>Daily</option>
<option value={2}>Weekly</option>
<option value={3}>Monthly</option>
<option value={4}>Yearly</option>
</Field>
Затем у меня есть поле <Condition>
, которое отображает что-либо на основе значения:
const Condition = ({ when, is, children }) => (
<Field name={when} subscription={{ value: true }}>
{ ({ input: { value } }) => is(value) ? children : null }
</Field>
);
Тогда я использую это так:
<Condition when="freq" is={freq => [0, 1].includes(freq)}>
HELLO!!!
</Condition>
Однако это не работает, потому что .includes
также проверяет тип.Но я ожидаю и хочу, чтобы тип поля freq
был числом, потому что я установил значения как числа.Я не хочу использовать parse={value => value === undefined ? undefined : parseInt(value)}
.Причина, по которой я не хочу использовать это, заключается в том, что у меня есть случай, когда я устанавливаю value
для специальных объектов.Так что я ожидаю, что value
будет того же типа относительно того, что я установил, возможно ли это?
В будущем я должен сделать:
<Field name="freq" component="select" className="form-control">
<option />
<option value={Enum.FOO}>Hourly</option>