gpt4 book ai didi

javascript - 如何将外部方法传递给 React 中的无状态功能组件

转载 作者:行者123 更新时间:2023-11-29 16:47:34 25 4
gpt4 key购买 nike

我将 FlowRouter/Meteor 与 React 结合使用,并尝试将 FlowRouter.go 方法传递给 react 按钮,以便在按下按钮时导航到新页面。我想这样做是为了将按钮保留为可重用组件,但我正在努力弄清楚如何将 FlowRouter.go 方法传递到无状态功能组件中。这是我现在拥有的简化版本:

import React, { Component } from 'react';
import { FlowRouter } from 'meteor/kadira:flow-router';

const ParentComponent = () => {
// define text and styles here
return (
<div>
<Button text={text} style={styles} action={FlowRouter.go("Register")}/>
</div>
);
}

然后是我的按钮组件:

import React, { Component } from 'react';

// Call to action button
const Button = ({text, style, action}) => {
return (
<button className="btn" style={style} onClick={() => action()}>
{text}
</button>
);
}

Button.propTypes = {
text: React.PropTypes.string.isRequired,
style: React.PropTypes.object,
action: React.PropTypes.func
};

Button.defaultProps = {
text: "A button.",
style: {
height: "100%",
width: "100%",
},
action: null
};

export default Button

有谁知道将第三方库中的方法加载到 React 功能组件中需要什么语法?

最佳答案

你需要传入一个函数。您实际上是通过调用 FlowRouter.go("Register") 来执行 FlowRouter.go 函数。

试试这个:

const ParentComponent = () => {
// define text and styles here
return (
<div>
<Button text={text} style={styles} action={() => FlowRouter.go("Register")}/>
</div>
);
}

此外...因为 action 是一个函数,您可以将它直接传递给您的 onClick,如下所示:

<button className="btn" style={style} onClick={action}>

关于javascript - 如何将外部方法传递给 React 中的无状态功能组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39772715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com