react中使用 setState 修改数据

import React, { Component } from 'react'

export default class Like extends Component {
  constructor() { 
    super();
    this.state = {
      isLike: false,
      isLike2: false,
    }
  }
  // 点击事件
  handleLikeBtn = () => {
    //  react 里修改数据用setState 方法,该方法可以有两个参数,第一个参数有两种情况:
    // 当第一个参数是对象时:
    this.setState({
      isLike: !this.state.isLike
    })
    // 当第一个参数是方法时,
    this.setState((preState, props) => {
      // 可以在第一个方法中获取之前的数据和props数据
      return {
        isLike2: !preState.isLike2
      }
    }, () => {
      // setState是异步的,可以在第二个方法中得到最新的数据
      console.log(this.state.isLike2 );
    })
  }
  render() {
    return (
      <div>
        <span style={{ fontSize: '36px', cursor: 'pointer' }}
          onClick={this.handleLikeBtn} >
           { this.state.isLike ? '取消 ❤️' : '喜欢 💙' }
           { this.state.isLike2 ? '取消 😁' : '喜欢 🤪' }
        </span>
        
      </div>
    )
  }
}
 <Like name="茄子"></Like>

效果:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React 使用 Ant Design 的分页组件,并在每页放入数据,你可以采用以下步骤: 1. 首先,你需要安装 `antd` 包,可以通过以下命令进行安装: ``` npm install antd ``` 2. 在你的组件引入 `Pagination` 组件和需要分页显示的数据: ```jsx import { Pagination } from 'antd'; class PageComponent extends React.Component { constructor(props) { super(props); this.state = { data: [], // 分页数据 currentPage: 1, // 当前页码 pageSize: 10, // 每页显示条数 total: 0 // 数据总数 }; } // 获取分页数据 fetchData = (page, pageSize) => { // 根据当前页码和每页显示条数获取数据 // 这里只是一个示例,实际项目要根据实际需求进行修改 const data = [ { id: 1, name: '张三', age: 20 }, { id: 2, name: '李四', age: 22 }, { id: 3, name: '王五', age: 24 } ]; const total = 3; // 数据总数 this.setState({ data, total }); }; // 处理页码改变事件 handlePageChange = (page, pageSize) => { this.setState( { currentPage: page, pageSize }, () => { this.fetchData(page, pageSize); } ); }; // 渲染分页数据 renderData = data => { return data.map(item => { return ( <div key={item.id}> <p>姓名:{item.name}</p> <p>年龄:{item.age}</p> </div> ); }); }; render() { const { data, currentPage, pageSize, total } = this.state; return ( <div> {this.renderData(data)} <Pagination current={currentPage} pageSize={pageSize} total={total} onChange={this.handlePageChange} /> </div> ); } } export default PageComponent; ``` 在上述代码,我们定义了一个 `PageComponent` 组件,其包含了一个 `fetchData` 函数用于获取分页数据,一个 `handlePageChange` 函数用于处理页码改变事件,以及一个 `renderData` 函数用于渲染分页数据。 在 `render` 方法,我们首先通过 `this.renderData(data)` 渲染了当前页的数据,然后使用 `Pagination` 组件进行分页显示,并通过 `current`、`pageSize` 和 `total` 属性指定了当前页码、每页显示条数和总数据条数。 在 `Pagination` 组件的 `onChange` 属性,我们设置了一个回调函数 `handlePageChange`,用于在页码改变时重新获取分页数据并更新组件状态。 希望这个回答能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值