亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

滑塊未正確移除

滑塊未正確移除

蝴蝶不菲 2022-11-27 17:18:48
這是所有代碼:import React, { Component } from "react";import "./App.css";import Slider from "@material-ui/core/Slider";import Typography from "@material-ui/core/Typography";class App extends Component {  state = {    users: [],  };  componentDidMount() {    fetch("/users").then((response) =>      response.json().then((data) => {        this.setState({ users: data.users });      })    );  }  removeSlider(user) {    const users = [...this.state.users];    users.splice(users.indexOf(user), 1);    this.setState({ users: users });  }  render() {    return (      <div className="App">        {this.state.users.map((user) => (          <div className="slider" id="di">            <Typography id="range-slider" gutterBottom>              <button className="btn" onClick={() => this.removeSlider(user)}>                {user.first_name[0].toUpperCase() + user.first_name.slice(1)}              </button>            </Typography>            <Slider              orientation="vertical"              defaultValue={[0, 50]}              aria-labelledby="vertical-slider"            />          </div>        ))}      </div>    );  }}export default App;用戶來自另一臺服務器。在排版中,每個用戶都有一個按鈕,該按鈕實質上是將他們從用戶列表中刪除(由 removeSlider 處理程序處理)。這里的問題是,當我這樣做時,與列表末尾對應的滑塊被刪除,而不是我想要刪除的滑塊。所以在圖片中我去刪除 Jordan,但是 Imagine 的滑塊被刪除了。不過,喬丹實際上已從用戶列表中刪除。任何幫助,將不勝感激。
查看完整描述

1 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

當用戶被移除時,由于狀態更改,React 重新呈現頁面,并且在mapReact 內部將繪制 5 個滑塊,它將與前 5 個滑塊相關聯,因為您沒有向它們添加。

因此,第一步是向地圖中的滑塊添加關鍵點,然后重新渲染應該保留并重新使用正確的舊對象,而不是重新繪制或錯位它們。

此外,您可能希望將滑塊的值存儲在狀態中,使它們成為“受控組件”(設置它們value的起始狀態,并處理它們的change事件以更新狀態),這樣它們就不會在渲染之間丟失它們的信息。


查看完整回答
反對 回復 2022-11-27
  • 1 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號