Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何从类中导出函数,以便能够将其导入到另一个类中使用_Reactjs_Sharepoint_Sharepoint Online_Spfx - Fatal编程技术网

Reactjs 如何从类中导出函数,以便能够将其导入到另一个类中使用

Reactjs 如何从类中导出函数,以便能够将其导入到另一个类中使用,reactjs,sharepoint,sharepoint-online,spfx,Reactjs,Sharepoint,Sharepoint Online,Spfx,明确地说,我正在学习打字脚本,并对spfx开发做出反应。我已经阅读并参与了关于各种源代码和堆栈溢出的教程和其他答案,但还没有找到足够的帮助 以下是我在EvalReqNewForm类getGrades中的函数: export default class EvalReqNewForm extends React.Component<IEvalReqNewProps, IEvalReqNewState> { constructor(props){ super(pro

明确地说,我正在学习打字脚本,并对spfx开发做出反应。我已经阅读并参与了关于各种源代码和堆栈溢出的教程和其他答案,但还没有找到足够的帮助

以下是我在EvalReqNewForm类getGrades中的函数:

export default class EvalReqNewForm extends React.Component<IEvalReqNewProps, IEvalReqNewState> {
    constructor(props){
        super(props);
        this.state = {
            EvalType: null,
            JobTitReportTo: null,
            JobTitReportToNum: null,
            PropGradeList: [],
            SelectedGrade: undefined,
            CompPos: null,
            ContextNewJobCode: null
        };
        this._onJobTitReportToChange = this._onJobTitReportToChange.bind(this);
        this._onJobTitReportToNumChange = this._onJobTitReportToNumChange.bind(this);
        this._onPropGradeChange = this._onPropGradeChange.bind(this);

    }
我想在ComponentDidMount中使用另一个类的_getGrades函数,以便从SP列表中删除“Grades”

是否涉及使用道具?或者可以简单地将函数导出并导入到我想要使用它的类中

请理解我在这里学习基础知识

TL;博士 创建一个只依赖于其参数的函数,然后导出/导入它

或者可以简单地将函数导出并导入到我想要使用它的类中

您可以做的是创建一个只依赖于其参数的函数

所以会是这样的

export function getGrades(something){
    // do what ever you want with something
    return somethingYouDid
}
然后将其导入其他文件并像

import { getGrades } from '...'

...

public _getGrades() {
    const results = getGrades(someDataFromSomeWhere)
    this.setState({PropGradeList : results});        
}
我还看到您正在使用承诺,所以在您的案例中可能需要使用async/await

编辑: 正如评论中所说的那样


我似乎不能在类中使用导出

您应该在类外使用它,您将不得不使用函数。 类的一个外部具有所有逻辑,另一个内部仅调用外部函数

export function getGrades(something){
    // do what ever you want with something
    return somethingYouDid
}

class ... {

    ...

    public _getGrades() {
        const results = getGrades(someDataFromSomeWhere)
        this.setState({PropGradeList : results});        
    }

}

我似乎不能在类中使用导出。它说“导出修饰符不能出现在类元素上”。@Tom请检查我的编辑,你应该有一个类外的函数。我已经在另一个类中使用componentdidmount解决了这个问题,所以我在Web部件中有2个componentDidMounts。从长远来看,这有什么害处吗?我不明白你说的我在Web部件中有两个组件挂载是什么意思,你是说在同一个类中吗?那会给你一个机会error@Tom类外的函数应该具有逻辑,类内的函数应该调用类外的函数。因此,外部的函数应该有.map或异步调用,而类内部的函数应该有这样的.setState。
export function getGrades(something){
    // do what ever you want with something
    return somethingYouDid
}

class ... {

    ...

    public _getGrades() {
        const results = getGrades(someDataFromSomeWhere)
        this.setState({PropGradeList : results});        
    }

}