我的一个组件(Source.jsx)中有一个返回数组的方法。我想在所有其他组件中访问此数组(例如Article.jsx,它不一定是Source的子组件)。这可能吗?
//Soure.jsx
export default class Source extends React.Component {
//Returns an array which I want to use in Article.jsx
getCategories() {
let sourceCategories = this.fetchAllCategories();
let sortedCategories = [];
let index = 0;
while(index <= 5){
sortedCategories.push(sourceCategories[index]);
index++;
}
return sortedCategories;
}
}
//Article.jsx
Import Source from '../Source’
let category = Source.getCategories()
console.log(category) //this is undefined (it says getCategories is not a function)
export default class Article extends React.Component {
//some methods
}
答案 0 :(得分:0)
我不认为React组件是这样使用的。这条线肯定是错的。
let category = Source.getCategories()
我理解它的方式你有两个选择。
使Source的父组件向其传递prop函数,每当调用getCategories()时,您还应该调用该函数将数组的值传递回父级,然后父级可以将其作为支持其他孩子。不确定你的组件是如何嵌套的,或者你打算如何使用这个值,特别是因为你说你想在所有其他组件中访问这个数组,所以它可能比值得多麻烦。
以Window.something的样式定义一个全局变量,每次调用getCategories()时,都会将结果数组赋值给该全局变量。现在您可以在任何地方访问它。不用说总是小心使用全局变量并尽量避免使用它们/尽可能少地修改它们。