компонент поля redux-form получает неправильное значение от дочернего компонента - PullRequest
0 голосов
/ 23 марта 2019

Я создаю форму обзора курса для своего приложения, и у меня есть эта странная проблема, которую я просто не могу решить. Я использую библиотеку реагирующих звезд (https://github.com/n49/react-stars),, чтобы создать очень простой компонент оценки звезд. Например:

import React, { Component } from 'react';
import ReactStars from 'react-stars';

class StarsRating extends Component {

 render(){
  const field = this.props;
  console.log(field)

   return(
     <React.Fragment>
      <ReactStars
       count={5}
       size={24}
       onChange={(value) => field.input.onChange(field.input.name, value)}
       half={false}
       color2={'#ffd700'}
       />
     </React.Fragment>
   )
 }
}

export default StarsRating;

Проблема в том, что когда я пытаюсь получить значение в родительском компоненте, я получаю одинаковое значение как для имени, так и для значения, которое является {field.input.name}, полученным из компонента поля. Если я изменю функцию {ratingChanged} на компонент StarsRating, то она возвращает правильное числовое значение. Любые подсказки, почему это происходит? Должен ли я просто переместить функцию в дочерний компонент и найти способ получить результат в виде обратного вызова в родительском компоненте? Любая помощь будет оценена :) 1006 *

import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form';
import StarsRating from './StarsRating';

class ReviewForm extends Component {

ratingChanged(name, value){
  console.log(name)
  console.log(value)
}

render(){
  return(
    <Field name="host_rating" onChange={this.ratingChanged} component={StarsRating}/>
    )
  }
}

export default reduxForm({
form: 'review'
})(ReviewForm);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...