Я создаю форму обзора курса для своего приложения, и у меня есть эта странная проблема, которую я просто не могу решить. Я использую библиотеку реагирующих звезд (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);