React快速开发迷你记账簿------ day 09 删除 Record

day 09 删除 Record

本节目标:实现删除操作

  • 1.设置监听函数,发送请求,删除记录
  • 2.更新表单

1.设置监听函数

参考网址,仿照方法:

https://cn.redux.js.org/docs/react-redux/api.html

0804

src\components\Records.js:

deleteRecord(){
    // console.log(record,"1");看看删除的记录对不对,然后设置状态将页面刷新
    const recordIndex = this.state.records.indexOf(record);
    const newRecords = this.state.records.filter( (item, index) => index !== recordIndex);
    this.setState({
      records: newRecords
    });
}

render() {
    ...
<tbody>
            {records.map(record => (
              <Record key={record.id}
              record = {record} 
              handleEditRecord = {this.updateRecord.bind(this)}
              handleDeleteRecord = {this.deleteRecord.bind(this)}
              />
</tbody>
              ...
}

1.1绑定事件:

src\components\Record.js

import React, { Component } from "react";
import PropTypes from "prop-types"; //添加这一行导入静态检查的库
import * as RecordsAPI from '../utils/RecordsAPI';//导入api
export default class Record extends Component {
  constructor() {...}

  handleToggle(){...}

  handleEdit(event){...}

  handleDelete(event){
  //1.2在这里创建函数
      //1-2.1  console.log(record);
      //传递函数给子组件
    event.preventDefault();
    RecordsAPI.remove(this.props.record.id).then(
      response => this.props.handleDeleteRecord(this.props.record)
    ).catch(
      error => console.log(error.message)
    )
  }
//1.1给删除按钮绑定事件
  recordRow() {
    return (
      <tr>
        <td>{this.props.record.date}</td>
        <td>{this.props.record.title}</td>
        <td>{this.props.record.amount}</td>

        <td>
          <button className="btn btn-info mr-1" onClick = {this.handleToggle.bind(this)}>Edit</button>
          <button className="btn btn-danger" onClick = {this.handleDelete.bind(this)}>Delete</button>
        </td>
      </tr>
    );
  }
  /*
  提取表单,输入框   默认值 defaultValue = {this.props.date}
   */
  RecordForm(){...}

Record.propTypes = {...};

添加Api:src\utils\RecordsAPI.js:

...
export const remove = (id) => axios.delete(`${api}/api/v1/records/${id}`);

Edit 09-delete-records

https://github.com/lenvo222/09_delete_record.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值