Javascript 使用React Rating组件,如何根据评级显示自定义消息?

Javascript 使用React Rating组件,如何根据评级显示自定义消息?,javascript,reactjs,Javascript,Reactjs,我目前正在使用允许我的用户提供1-5星级评级 在我的渲染函数中,我具有以下功能: <Rating fractions={2} onRate={(rate) => document.getElementById('label-onrate').innerHTML = rate || ''} /> <span class="label label-default" id="label-onrate">&

我目前正在使用允许我的用户提供1-5星级评级

在我的渲染函数中,我具有以下功能:

      <Rating
        fractions={2}
        onRate={(rate) => document.getElementById('label-onrate').innerHTML = rate || ''}
      />
      <span class="label label-default" id="label-onrate"></span>
document.getElementById('label-onrate').innerHTML=rate | |'''}
/>
这将返回5颗星,当您将鼠标悬停在一颗星上时,
#label onrate
文本将更新以向用户显示评级值

我需要做的是更新文本,但不是使用评级值,而是使用每个评级值的自定义消息


如何为每个评级值定义自定义消息,并使该消息显示在
#label onrate
中?

创建一个用于利率更改的事件处理程序,并使label onrate文本保持状态。您不需要使用React直接修改DOM。更新状态时,组件将重新招标。大概是这样的:

  state = {
     label: "initial"
  };
  ...
  onRateChange = (rate) => {
      if(rate === 1)
         this.setState({label: "new text"}); //Triggers render
  }
  ...
  <Rating
    fractions={2}
    onRate={(rate) => this.onRateChange(rate)}
  />
  <span class="label label-default" id="label-onrate">{this.state.label}</span>
状态={
标签:“首字母”
};
...
onRateChange=(速率)=>{
如果(速率==1)
this.setState({label:“new text”});//触发渲染
}
...
此.onRateChange(rate)}
/>
{this.state.label}