要清楚,我正在学习TypeScript和React用于spfx开发。我已经阅读并参加了各种资源和Stack Overflow上的教程和其他答案,但发现它们不足以帮助我。
这是我在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);
}
...
public _getGrades() {
pnp.sp.web.lists.getByTitle("Grades").items.get().then((items: any[]) =>{
let returnedGrades:IDropdownOption[]= items.map((item) =>{return {key:item.Title, text:item.Title};});
this.setState({PropGradeList : returnedGrades});
});
}
我想使用另一个类中的_getGrades()函数在ComponentDidMount()中使用,以便从SP列表中获得“成绩”。
它涉及使用道具吗?还是可以将函数简单地导出并导入到我要使用它的类中?
请理解我正在这里学习基础知识!
答案 0 :(得分:1)
创建一个仅依赖于其参数的函数并导出/导入它。
还是可以将函数简单地导出并导入到我要使用它的类中?
您可以做的是创建一个仅取决于其参数的函数。
所以会像
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});
}
我还看到您正在使用Promise,因此也许您需要使用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});
}
}