#redux #react-redux #redux-form
#redux #реагировать-redux #redux-форма
Вопрос:
Изучаем redux-формы с этой страницы, но не понимаем, как входные реквизиты передаются полевому компоненту, как показано ниже:
class MyCustomInput extends Component {
render() {
const { input: { value, onChange } } = this.props
return (
<div>
<span>The current value is {value}.</span>
<button type="button" onClick={() => onChange(value 1)}>Inc</button>
<button type="button" onClick={() => onChange(value - 1)}>Dec</button>
</div>
)
}
}
Откуда MyCustonInput получает input
реквизит? Пример показывает это только ниже:
import MyCustomInput from './MyCustomInput'
...
<Field name="myField" component={MyCustomInput}/>
Ответ №1:
Field — это компонент более высокого порядка, который применяет эти свойства ко всему, что передается component
. Он эффективно определяет, какие значения требуются полю и как оно должно быть подключено к хранилищу redux, в зависимости от переданного вами компонента и, возможно, других свойств Field
.
Исходный код, вероятно, является лучшим источником истины по этому вопросу. Вы можете увидеть, где здесь определяется ввод в функции createFieldProps: https://github.com/erikras/redux-form/blob/master/src/createFieldProps.js