Селектор значений формы в форме приставки. Ошибка: ваш метод рендеринга должен иметь оператор return - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь выбрать выбранное значение dateAway с названием dateAway и, если оно меньше текущего времени, в вычисляемом поле с именем «isPassed» будет указано «да», в противном случае - «нет». Это моя ProductForm.

        componentWillReceiveProps = nextProps => {
       // Load Contact Asynchronously
         const { product } = nextProps;
          if (product._id !== this.props.product._id) {
          // Initialize form only once
           this.props.initialize(product);
           this.isUpdating = true;
          }
          };

   render() {

       let ProductForm = (props) =>{

       const { whenIsPassedAway, handleSubmit, loading } = this.props;

  if (loading) {
         return <span>Loading...</span>;
       }

       return (
          <form onSubmit={handleSubmit}>
           <Field
            name='name'
            type='text'
            component={TextField}
            placeholder='...Name'
            label='Name'
             />
    <Field
            name='description'
            rows='8'
            component={TextArea}
            placeholder='...Description'
            label='Description'
           />

               <Field
                  name='brand'
                  type='text'
                  component={TextField}
                  placeholder='...Brand'
                  label='Brand'
               />

          <Field
             name='price'
             component={NumberPickerr}
             placeholder= '...price'
             label='Price'
           />
          <Field
             name='stock'
             component={NumberPickerr}
             placeholder= '...stock'
            label='Stock'
          />
               <Field
                  name='code'
                  type='text'
                 component={this.renderField}
                 label='Code'
                />
          <Field
            name='passedAway'
            type='text'
            component={this.renderField}
            label='PassedAway'
            input={{disabled: true}}
            value={whenIsPassedAway}
           />
          <Field
             name='createdAt'
             dateFormat= 'DD-MM-YYYY'
             // dateFormat='dd-MM-yyyy H:mm'
             // showTimeSelect
             timeFormat= 'HH:mm'
             placeholder='product createdAt...'
             label='CreatedAt'
              component={DateTimePickerInput}
            />
          <Field
            name='passedAwayAt'
            dateFormat= 'DD-MM-YYYY'
            // dateFormat='dd-MM-yyyy H:mm'
            // showTimeSelect
           timeFormat= 'HH:mm'
           placeholder='product passedAwayAt...'
            label='PassedAwayAt'
            component={DateTimePickerInput}
         />

          <Link className='btn btn-light mr-2' to='/products'>
            Cancel
          </Link>
          <button className='btn btn-primary mr-2' type='submit'>
           {this.isUpdating ? 'Update' : 'Create'}
         </button>
       </form>
     );
    }

    }

  }

 ProductForm = reduxForm({
  form: 'product'
 })(ProductForm) 

  const selector = formValueSelector('product')

  ProductForm = connect(

   state =>{

    const whenIsPassedAway = selector(state,'passedAwayAt')

     return{
        hasPassedAway : `${whenIsPassedAway}` <= Date.now() ? 'yes' : 'no'
      }

   }
  )(ProductForm) 

  export default reduxForm({ form: 'product', validate: validations })(ProductForm);

Когда я выполняю рендеринг компонента, у меня появляется следующая ошибка:

Ваш метод рендеринга должен иметь оператор return response / require-render-return

Я ожидаю, что значениеAsAway было рассчитано по параметру whenIsPassedAway, но я получил эту ошибку и приложение упало.

Я использую вычисляемые поля.

Что не так?

...