如何通过React中子组件的onchange事件调用父类组件中的函数?

MDspb

我有一个子组件,pageChange当我按下2分页栏中的按钮时,该子组件会触发功能

import React from "react";
import "antd/dist/antd.css";
import { Pagination } from "antd";

const Child = props => {
  function pageChange(pageNumber) {
    props.pageChange(pageNumber);
    console.log("Page child: ", pageNumber);
  }

  return (
    <div>
      <Pagination
        defaultCurrent={1}
        total={50}
        onChange={pageChange}
      />
    </div>
  );
};

export default Child;

此子级在Parent类组件中使用:

import React, { Component } from "react";
import Child from "./Child";

class Parent extends Component {
  state = {
    pageIndex: 3
  };

  componentDidMount() {
    this.getSetData(this.state.pageIndex);
  }

  getSetData(pageNumber) {
    this.setState({
      pageIndex: 5
    });
    console.log("Page state: ", this.state.pageIndex);
    console.log("pageNumber: ", pageNumber);
  }

  pageChange(pageNumber) {
    console.log("Page parent: ", pageNumber);
    this.getSetData(pageNumber);
  }

  render() {
    return (
      <div className="container">
        <Child pageChange={this.pageChange} />
      </div>
    );
  }
}

export default Parent;

但是我有麻烦:

  1. 当我按下2按钮时,我得到一个错误this.getSetData is not a function如何调用getSetDatapageChange
  2. 通话this.setState({pageIndex: 9});期间声明不起作用componentDidMount为什么?

解决了

  1. 据我了解,没有箭头的功能有它自己的this所以必须使用
pageChange = pageNumber => {
    this.getSetData(pageNumber);
  };

代替

pageChange(pageNumber) {
    this.getSetData(pageNumber);
  }
  1. setState 是异步的,因此查看控制台中的更改对于从 render
  render() {
    console.log("render ", this.state.pageIndex);
    return (
      <div className="container">
        <Child pageChange={this.pageChange} />
      </div>
    );
  }
阿里·瓦哈卜(Ali Wahab)

使用ES6函数可以是一个简单的解决方案。所以你不需要在构造函数中绑定它

 getSetData = (pageNumber) => {
    this.setState({
      pageIndex: 5
    });
    console.log("Page state: ", this.state.pageIndex);
    console.log("pageNumber: ", pageNumber);
  }

编辑1

尝试像这样使用您的子组件。

<Child pageChange={() => this.pageChange()} />

运行示例

编辑2

<Child pageChange={(e) => this.pageChange(e)} />

您没有将参数传递给pagechange函数,这就是为什么它什么也没收到的原因。

试试这个,它肯定会工作。我已经在您的代码中对此进行了测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在React的子组件中调用父函数

来自分类Dev

如何从子组件调用父组件中的事件?

来自分类Dev

如何在父组件中调用函数

来自分类Dev

如何在React的父组件上通过onChange调用访问内部虚拟DOM元素

来自分类Dev

如何从react.js中的父组件覆盖子组件的事件处理函数

来自分类Dev

如何从react.js中的父组件覆盖子组件的事件处理函数

来自分类Dev

如何使用React中子组件的状态更新父组件?

来自分类Dev

如何使用React中子组件的状态更新父组件?

来自分类Dev

如何使用React中子组件的状态更新父组件?

来自分类Dev

从子组件中调用父组件函数

来自分类Dev

React:获取父组件中子组件的状态

来自分类Dev

如何在 ReactJS 中使用参数正确调用父组件中的事件处理函数?

来自分类Dev

如何从React组件中调用Firebase函数

来自分类Dev

触发子组件事件时如何调用父组件构造函数

来自分类Dev

如何在react-native中从子组件(带有参数)调用父函数?

来自分类Dev

如何从使用DCL loadintolocation()加载的子组件中调用父组件中的事件

来自分类Dev

子组件中的 ondragend 事件调用父组件方法

来自分类Dev

类组件的onChange事件问题

来自分类Dev

如何调用Typescript类的react组件内部定义的函数?

来自分类Dev

React Native:从类中调用功能组件内部的函数

来自分类Dev

如何在react.js中从父级调用功能组件中子级的功能?

来自分类Dev

如何使用React Hooks从子组件onClick()触发父组件中的事件?

来自分类Dev

如何使用React-Native获取父ListView组件中子复选框组件的状态?

来自分类Dev

如何使用react testing库对父组件中子组件的渲染进行单元测试?

来自分类Dev

React Selector:通过两个组件传递onChange事件

来自分类Dev

在React Native中通过子组件更新父组件

来自分类Dev

如何从Elm中的组件调用父味精?

来自分类Dev

子组件未调用父组件函数

来自分类Dev

对父组件的异步函数调用

Related 相关文章

  1. 1

    在React的子组件中调用父函数

  2. 2

    如何从子组件调用父组件中的事件?

  3. 3

    如何在父组件中调用函数

  4. 4

    如何在React的父组件上通过onChange调用访问内部虚拟DOM元素

  5. 5

    如何从react.js中的父组件覆盖子组件的事件处理函数

  6. 6

    如何从react.js中的父组件覆盖子组件的事件处理函数

  7. 7

    如何使用React中子组件的状态更新父组件?

  8. 8

    如何使用React中子组件的状态更新父组件?

  9. 9

    如何使用React中子组件的状态更新父组件?

  10. 10

    从子组件中调用父组件函数

  11. 11

    React:获取父组件中子组件的状态

  12. 12

    如何在 ReactJS 中使用参数正确调用父组件中的事件处理函数?

  13. 13

    如何从React组件中调用Firebase函数

  14. 14

    触发子组件事件时如何调用父组件构造函数

  15. 15

    如何在react-native中从子组件(带有参数)调用父函数?

  16. 16

    如何从使用DCL loadintolocation()加载的子组件中调用父组件中的事件

  17. 17

    子组件中的 ondragend 事件调用父组件方法

  18. 18

    类组件的onChange事件问题

  19. 19

    如何调用Typescript类的react组件内部定义的函数?

  20. 20

    React Native:从类中调用功能组件内部的函数

  21. 21

    如何在react.js中从父级调用功能组件中子级的功能?

  22. 22

    如何使用React Hooks从子组件onClick()触发父组件中的事件?

  23. 23

    如何使用React-Native获取父ListView组件中子复选框组件的状态?

  24. 24

    如何使用react testing库对父组件中子组件的渲染进行单元测试?

  25. 25

    React Selector:通过两个组件传递onChange事件

  26. 26

    在React Native中通过子组件更新父组件

  27. 27

    如何从Elm中的组件调用父味精?

  28. 28

    子组件未调用父组件函数

  29. 29

    对父组件的异步函数调用

热门标签

归档