我正在尝试重构其他人编写的一些代码,并且想知道是否可能进行以下操作。如何创建一个返回非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(){

   }
}


想象func1func2是相同的。如您所见,他们不返回任何jsx,只是进行进一步的调用。
我不认为我可以隔离成sep函数。我宁愿不以args形式传递道具,而只是将函数连接到redux存储并以这种方式使用道具。这可能吗?

最佳答案

HOC呢?您可以使用func1()方法创建一个组件,并且该组件的render函数将仅返回{this.props.children}

另外两个选项是独立函数(您不喜欢它)和继承(我不喜欢它)。

10-06 04:20
查看更多