我已经在多个基于React构建的库中看到过,传递JSX组件来定义功能,但不是立即的HTML输出,似乎被广泛接受。
例如(可能是坏的)react-router使用JSX组件定义路由,尽管这些路由定义了配置而不是仅渲染。
我有这种情况,我想将一个动作树(如子菜单)附加到多种类型的组件。有一个菜单组件输出一个带有上下文菜单的按钮,但我还必须将同一组操作传递给不同的触发器,这可能会呈现一组完整的元素以反映这些操作。
我的想法是创建一个JSX组件,它只定义具有子操作的操作,而不是直接渲染,但父组件使用它来迭代它们甚至调用这些操作的回调。
我该如何解决这个问题?或者我应该不使用JSX但是不同的类定义?使用JSX组件的想法源于它们使用起来非常舒适,因为实例化非常短并且保持实例化类代码清洁。
最后但并非最不重要:我怎么能做到这一点?我不确定如何实现这样的模式,因为调用JSX组件上的回调方法是不公开的。
感谢您的帮助!