我有一个jsx文件,我们称之为a,其内容如下:
export default function Outer() {
function inner() {
*some logic here*
return variable
}
function inner2() {
*some logic here*
}
function inner3() {
*some logic here*
}
return (
*various items here*
)
}
我需要将函数inner((导出到另一个文件,让我们称之为B,因为文件B需要能够读取从函数inner(返回的变量
但是,我无法编写导出函数inner((,因为导出只能在顶级调用。
也不可能将函数inner((移动到顶层,因为它也依赖于函数inner2((和函数inner3((的逻辑。
寻求关于我可能如何处理这个问题的建议。我做了一些阅读,看到了useSWR挂钩、react上下文API和redux等内容。我目前还不知道。
对于像我这样的初学者来说,有人能推荐哪种解决方案最适合我的情况,以及哪种方案最容易实现吗?
此外,除了我遇到的这3件事之外,还有其他解决方案同样有效,但我错过了吗?
const newOuter = (()=>{
function inner(){
return "inner" + inner2() + inner3();
}
function inner2(){
return " inner2"
}
function inner3(){
return " inner3"
}
function original(params){
/*various items here*/
return params;
}
return {
inner,
original
}
})()
export default newOuter;
//B.js
import newOuter from './newOuter.js'
const innerReturnValue = newOuter.inner()
因此,通过这种方式,您可以调用newOuter.original()
并获得outer
函数的原始返回值,如果您只需要inner
函数,则可以调用newOuter.inner()
。