我仍然是前端的新秀。我有2个不相关(无父子关系)课程:
search.js
Class Search{
method,
state
}
view.js
Class view{
content
}
我正在尝试:
其他信息:
谢谢!
代码:
export default class Search extends Component {
constructor() {
this.state = {
input: ""
};
}
search(input) {
this.setState({ input: input });
}
}
答案 0 :(得分:3)
如果类是不相关的,那么只有三种方法可以在类外部(或者实际上是在其内部)使用类的方法:
如果它是stub.handler.handleGetState(.)
方法,则直接调用它:
static
如果它是原型或实例方法,通常的事情是创建一个实例,然后在该实例上调用该方法:
Search.theStaticMethod()
如果它是原型方法,则可以 调用它而无需创建实例,但是这样做极有可能不正确:
const s = new Search(/*...*/);
s.prototypeOrInstanceMethod();
即使您不是通过// ALMOST CERTAINLY NOT THE RIGHT THING
Search.prototype.prototypeMethod();
创建该对象,也可以将方法应用于对象,这有一个变体:
new Search
该方法会将对象获取为// ALMOST CERTAINLY NOT THE RIGHT THING
const obj = {};
Search.prototype.prototypeMethod.call(obj);
,并且可能会或可能无法正确运行,具体取决于其编写方式。
答案 1 :(得分:1)
您需要一个已经回答的class实例。
const myInstance = new Search();
您可以导出此实例,而不是导出类。
export {myInstance};
在view.js中,您需要导入
import {myInstance} from './relative-path';
然后您调用方法
myInstance.search('someInput');
答案 2 :(得分:1)
比普通js采取的反应更强 ...可能已经回答了here甚至(最初)here
我有2个“不相关”(没有父子关系)类:
两者都在同一屏幕/视图/应用/组件树中吗?然后是间接的但仍然相关。
我正在尝试:
- 从view.js调用search.js方法。
- 从view.js更改search.js的状态值
有几种方法可以管理公共状态(值或方法):
<App />
组件中声明