如何将外部方法传递给React中的无状态功能组件
How to pass an external method to a stateless functional component in React
我正在使用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}>
相关文章:
- 如何更改reactjs中外部/独立组件的状态或属性
- 从组件状态的数组中删除元素
- React js更改状态不会更新组件
- 如何在渲染函数中检查 react 中子组件的状态
- 复选框保持React JS中各组件的状态
- 设置两个反应组件之间状态的正确方式
- 如何在react中设置视频端组件的状态
- reactjs-redux,是否可以有一个由2个组件使用的状态
- 如何处理 React / Flux 组件中的状态转换
- 如何从一个组件访问另一个组件的状态
- 如果我不应该在组件WillUpdate中调用setState,如何更新状态(使用ReactJS)
- React ES6 导入无状态组件
- React Js 组件在状态更改后只渲染一次
- Reactjs:在修改对象之前,是否需要复制处于组件状态的对象
- 在 React/Redux 中管理同级组件之间的滚动状态
- 超时后在无状态组件中执行函数
- React无状态组件-如何组织内部函数
- 使用无状态组件创建注册表单
- React无状态组件中的Ajax调用
- React无状态组件不工作