reactjs - 使用 Bootstrap 的模态不会更新内容

标签 reactjs bootstrap-modal

在我的应用程序中,我显示了一个包含额外信息(未显示)的项目列表,以及每个项目旁边的一个按钮,用于“查看”更多信息。我想在模态中显示额外的信息。我成功地实现了该模式,它按照我想要的方式显示信息。

但问题是,当我单击第二个列表项的按钮时,信息没有更新,它仍然显示(第一个项目的)旧信息。我该如何解决这个问题?为什么会出现这种情况?

从另一个类调用 map 函数:

 <List>
    this.props.enrolledClasses.map(enrolledClass => (
     <ClassesPeek
      title="Overview"
      enrolledClass={enrolledClass}
     />
 </List>

类 View :

      <List.Item>
      <span>{this.props.enrolledClass.name}
      <button type="button" className="ui compact primary button mt-3" data-toggle="modal" data-target="#details">
        View
      </button> 
      <div class="modal" id="details">
        <div class="modal-dialog modal-dialog-centered">
          <div class="modal-content">
            <div class="modal-header">
              <center><h4 class="modal-title">{this.props.enrolledClass.name}</h4></center>
              <button type="button" className="close" data-dismiss="modal">&times;</button>
            </div>
            <div class="modal-body">
              {this.props.enrolledClass.description}
            </div>
          </div>
        </div>
      </div> 
     </span>
    </List.Item>

因此,在上面的代码中,当我单击第二个列表项的“查看”按钮时,模式仍然显示第一个项目的名称和描述。

最佳答案

它将始终显示旧的,因为您没有通过将唯一键(id)传递给模式来指定它应该查看哪一个。将您的代码更新为以下代码片段,然后它将按预期工作

<List.Item>
  <span>{this.props.enrolledClass.name}
  <button type="button" className="ui compact primary button mt-3" data-toggle="modal" data-target={`#details${this.props.enrolledClass.id}`} id={`#details${this.props.enrolledClass.id}`}>
    View
  </button> 
  <div class="modal" id={`details${this.props.enrolledClass.id}`}>
    <div class="modal-dialog modal-dialog-centered">
      <div class="modal-content">
        <div class="modal-header">
          <center><h4 class="modal-title">{this.props.enrolledClass.name}</h4></center>
          <button type="button" className="close" data-dismiss="modal">&times;</button>
        </div>
        <div class="modal-body">
          {this.props.enrolledClass.description}
        </div>
      </div>
    </div>
  </div> 
 </span>
</List.Item>

关于reactjs - 使用 Bootstrap 的模态不会更新内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50898574/

相关文章:

javascript - 如何在 react 导航 5.x 中隐藏选项卡导航(底部选项卡)的标题?

reactjs - 如何在makeStyles中使用 'theme'和 'props'?

javascript - 根据数据动态设置SVG的宽高

html - Bootstrap : Add Button to list-group-items

javascript - 从 bootstrap-modal 获取页面中选定的项目

html - 模态内的表单大小

HTML - 在不破坏其他 <div> 容器的情况下将下面的 <div> 容器移动到下面的容器

javascript - React 为什么卸载组件慢

javascript - ReactJS Devtools 只显示 <TopLevel>

javascript - ReactJS componentDidMount、Fetch Spotify API 和 Promise