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

标签 javascript reactjs

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

在我的渲染函数中,我有以下内容:

      <Rating
        fractions={2}
        onRate={(rate) => document.getElementById('label-onrate').innerHTML = rate || ''}
      />
      <span class="label label-default" id="label-onrate"></span>

这会返回 5 颗星,当您将鼠标悬停在一颗星上时,#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>

关于javascript - 使用 React 评级组件,如何根据评级显示自定义消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45148363/

相关文章:

javascript - 使用 Passport 的 Node.js 用户身份验证

javascript - React中如何判断当前路由是否活跃

reactjs - "Actions must be plain objects. Use custom middleware for async actions."与 react /还原

javascript - 当我更改组件时,如何重新定义 reducer 的初始状态

reactjs - 输入值 onChange - React Hooks

javascript - 多个 react 表单输入禁用 onSubmit

javascript - 渲染 d3.js html 表而不阻塞 UI

javascript - Angularjs - 分离全局搜索和页面内容?

javascript - jquery.each 同步

如果发现是数字,Javascript 会删除 url 最后一段