当前位置: 首页 > 知识库问答 >
问题:

Functional React:从导入组件中调用函数[重复]

越嘉石
2023-03-14

我想从父react组件中的导入组件调用一个函数。

import Customer from './Customer';  

function App() {

  return (
    <div className="App">
      <Container maxWidth="sm">
        <Grid container spacing={2}>
          <Grid item xs={6}>
            <Button onClick={Customer.showCustomers}>show customers</Button>
          </Grid>
        </Grid>
      </Container>
      <Customers />
    </div>
  );
}
function Customer() {
  const [showAllCustomers, setshowAllCustomers] = useState(false);

  function showCustomers() {
    setshowAllCustomers(true);
  }
  return (
    (...)
  );
}

不幸的是,所有的教程都是关于面向对象的react组件的。

共有1个答案

慕容明煦
2023-03-14

React具有单向的、自顶向下的数据流。这意味着水平通信被认为是反模式的。如果要更改父组件的状态,则应将处理程序传递给子组件以在运行时执行

const Parent = () =>{
    const [foo, setFoo] = useState('foo')

    return <Child handler={setFoo} />
}

const Child = ({ handler }) => {
    const onClick = () =>{
        handler('baz')
    }

    return <button onClick={onClick}> Change Parent</button>
}

但在您的例子中,组件似乎没有层次关系。要以解耦的方式共享状态,您应该使用上下文API

 类似资料:
  • 问题内容: 我不确定之前是否有人问过这个问题,或者有人在reactjs上遇到过同样的问题。所以场景是这样的,我有一个包含一些javascript 的 index.html 文件。现在,在我的react组件上,我有一个仅在条件为true时才会呈现的条件。这意味着最初在我的页面加载时,尚未呈现该组件。当我切换按钮时,这就是渲染该组件的地方。该子组件需要调用index.html中包含的javascrip

  • 我正在用JavaScript构建firebase函数。现在我有了很多调用间函数,我计划将这些函数移到不同的文件中,以避免index.js变得非常混乱。 下面是当前的文件结构: 我想知道: 1)如何从internalfunctions.js导出函数并导入到index.js。 已编辑 js将具有多种功能。

  • 当我说时,我可以从np访问numpy中的所有模块和子模块。我不必说。这个功能叫什么?我如何在我的包中实现它。

  • 我对Java非常陌生,因此遇到了很大的困难。这是我想做的,但似乎不太奏效。 请看附上的Java代码和文本文件(截图在链接)。 文本文件:

  • 问题内容: 我在编写Python程序很有趣,但在尝试从另一个文件中的类导入函数时遇到问题。这是我的代码: 我想返回一个从另一个文件中的类调用的函数。当我导入文件时,它首先运行其中的类,然后继续运行原始代码。为什么会这样? 这是comm_system的代码: 问题答案: 将通讯系统的结尾更改为: 总是在运行的那些行会导致它在导入和执行时都运行。