我正在尝试重构其他人编写的一些代码,并且想知道是否可能进行以下操作。如何创建一个返回非html或jsx的react组件?并返回一个函数或什么?
到目前为止,基本上该组件包含4个函数,然后是一个return块,该块返回一些已渲染的jsx
我想将其中两个函数提取到它们自己的组件中,因为它们相似并且可以重用
但是,这些函数只是进行ajax调用并调用其他函数,而不是返回任何jsx。他们还需要道具,并且需要道具通过或连接到Redux商店
它调用的某些函数是调度函数,因此必须连接到redux存储。所以我不能建立一个独立的功能
这有意义还是我错过了什么?下面的伪代码演示:
const component = ({...props}) => {
const func1(){
prop1()
try{
} catch(){
callingAnotherProp()
}
}
const func2(){
}
const func3(){
}
const func4(){
}
}
想象
func1
和func2
是相同的。如您所见,他们不返回任何jsx,只是进行进一步的调用。我不认为我可以隔离成sep函数。我宁愿不以args形式传递道具,而只是将函数连接到redux存储并以这种方式使用道具。这可能吗?
最佳答案
HOC呢?您可以使用func1()
方法创建一个组件,并且该组件的render
函数将仅返回{this.props.children}
。
另外两个选项是独立函数(您不喜欢它)和继承(我不喜欢它)。