有人可以解释一下 React 中的高阶组件吗?我已经阅读并重新阅读了文档,但似乎无法更好地理解。根据文档,HOC 通过创建一个返回react组件的主函数,通过将参数传递给该函数来帮助消除重复。我有几个问题。
- 如果 HOC 创建了一个新的增强组件,是否有可能根本不传入任何组件作为参数?
- 在诸如this的示例中,它是高阶组件,
Button
或EnhancedButton
。 我尝试创建一个这样的 HOC:
// createSetup.js import React from 'react'; export default function createSetup(options) { return class extends React.Component { constructor(props) { super(props); this.state = {}; this.testFunction = this.testFunction.bind(this); } testFunction() { console.log("This is a test function"); } render() { return <p>{options.name}</p> } } } // main.js import React from 'react'; import {render} from 'react-dom'; import createSetup from './createSetup'; render((<div>{() => createSetup({name: 'name'})}</div>), document.getElementById('root'););
运行它不会显示 HOC,只显示 div
任何人都可以提供比给出的更好的例子吗?