react:从另一个组件调用函数(特定示例)

x7rlezfr  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(352)

我试图更好地理解react,所以我制作了这个玩具示例,试图让react组件从另一个组件调用函数。我正在查看chrome上的react-dev工具,但控制台上没有任何记录。我不知道为什么会这样。有人能给我解释一下为什么这是错误的,以及如何修复它吗?
testbutton.js文件

import React from 'react';
import Button from '@material-ui/core/Button';

export default function TestButton() {
  return(
    <div>
      <Button
    id='searchButton'
    variant="contained"
    color="primary"
    type="submit"
    fullWidth
    onClick={testFunction}
  >
    Search
  </Button>
    </div>
  );
}

app.js文件:

import './App.css';
import Header from './components/Header.js';
import TestButton from './components/TestButton.js';

function testFunction() {
  console.log("Yay it works!");
}

function App() {
  return (
    <div className="App">
      <Header />
      <TestButton></TestButton>
    </div>
  );
}

export default App;
5lwkijsr

5lwkijsr1#

您需要传递对的引用 testFunction 从…起 App 进入 TestButton . 大概是这样的:

export default function TestButton({fn}) {
  return(
    <div>
      <Button
        id='searchButton'
        variant="contained"
        color="primary"
        type="submit"
        fullWidth
        onClick={fn}
      >
        Search
      </Button>
    </div>
  );
}

function App() {
  function testFunction() {
    console.log("Yay it works!");
  }
  return (
    <div className="App">
      <Header />
      <TestButton fn={testFunction}></TestButton>
    </div>
  );
}

按照您的方式,testfunction不在 TestButton 组件,所以传入testbutton可以用作回调的函数是实现这一点的一种方法。

相关问题