Избыточная форма никогда не вызывает проверки для собственного приложения реагирования - PullRequest
0 голосов
/ 17 мая 2018

Я полностью ожидаю, что это будет решено "смотри, ты забыл запятую там" или что-то глупое, но я действительно не вижу этого. Я разобрал проблему до базового приложения с естественной реакцией, имеющего только одну избыточную форму.

import React from 'react'
import { createStore, applyMiddleware } from 'redux'
import logger from 'redux-logger'
import { Provider } from 'react-redux'
import { Text, View, TextInput, Button } from 'react-native'
import { combineReducers } from 'redux'
import { reducer as formReducer, Field } from 'redux-form'
import { reduxForm } from 'redux-form'

const rootReducer = combineReducers({ forms: formReducer })
const store = createStore(rootReducer, {}, applyMiddleware(logger))

const validate = (values) => {
  const errors = {}
  if (!values.name) errors.name = 'Required'
  if (!values.email) errors.email = 'Required'
  return errors
}

const renderInput = ({ input: { onChange, ...restInput } }) => {
  return <TextInput onChangeText={onChange} {...restInput} />
}

class MyForm extends React.Component {
  submit = (values) => console.log('Submitting ', values)

  render() {
    const { handleSubmit } = this.props
    return (
      <View style={{ padding: 20 }}>
        <Text>Please fill in this form:</Text>
        <Field name='name' component={renderInput} />
        <Field name='email' component={renderInput} />
        <Button title='Go' onPress={handleSubmit(this.submit)} />
      </View>
    )
  }
}

const MyConnectedForm = reduxForm({
  form: 'myform',
  validate
})(MyForm)

export default class App extends React.Component {
  render() {
    return (
      <Provider store={store}>
        <MyConnectedForm />
      </Provider>
    )
  }
}

Я вижу, что события:

@@ перевождь-форма / ЗАМЕНА @@ перевождь-форма / Размытие

увольняются, и что состояние формы изменится. Однако validate вызывается только один раз, при первом рендере и никогда больше. Кроме того, когда я нажимаю кнопку, функция submit вызывается с пустым объектом, а не со значениями формы, как я ожидал.

Используемые версии:

  • Избыток: 3.7.2
  • Редукс-форма: 7.3.0
  • Реакция: 16.3.1
  • Реактор: 0,55,4

1 Ответ

0 голосов
/ 19 мая 2018

Почти так же плохо, как неуместная запятая.Я использовал ключ, формы , а затем формы .

...