Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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
如何从javascript中的其他类/组件调用方法?_Javascript_Reactjs_Class_Components_Preact - Fatal编程技术网

如何从javascript中的其他类/组件调用方法?

如何从javascript中的其他类/组件调用方法?,javascript,reactjs,class,components,preact,Javascript,Reactjs,Class,Components,Preact,我还是前端的新手。我有2个不相关的(无父母/子女关系)课程: 我正在努力: 从view.js调用search.js方法 从view.js更改search.js的状态值 其他信息: 我已经试过使用。这不是理想的解决办法 我正在使用Preact,它是React的轻量级版本 谢谢 代码: 如果类是不相关的,那么只有三种方法可以在类外部(或者实际上在类内部)使用类的方法: 如果是静态方法,请直接调用它: Search.theStaticMethod() 如果是原型或实例方法,通常的做法是创建

我还是前端的新手。我有2个不相关的(无父母/子女关系)课程:

我正在努力:

  • view.js调用search.js方法
  • view.js更改search.js的状态值
其他信息:

  • 我已经试过使用。这不是理想的解决办法
  • 我正在使用Preact,它是React的轻量级版本
谢谢

代码:


如果类是不相关的,那么只有三种方法可以在类外部(或者实际上在类内部)使用类的方法:

  • 如果是
    静态
    方法,请直接调用它:

    Search.theStaticMethod()
    
  • 如果是原型或实例方法,通常的做法是创建一个实例,然后在该实例上调用该方法:

    const s = new Search(/*...*/);
    s.prototypeOrInstanceMethod();
    
  • 如果它是一个原型方法,您可以在不创建实例的情况下调用它,但这样做极有可能是不正确的:

    // ALMOST CERTAINLY NOT THE RIGHT THING
    Search.prototype.prototypeMethod();
    
    在将方法应用于对象时有一种变化,即使该对象不是通过
    新搜索创建的

    // ALMOST CERTAINLY NOT THE RIGHT THING
    const obj = {};
    Search.prototype.prototypeMethod.call(obj);
    
    该方法将对象作为
    this
    获取,根据其编写方式,该对象可能正常工作,也可能无法正常工作


  • 您需要一个已回答的类实例

    const myInstance = new Search();
    
    您可以导出此实例,而不是导出类

    export {myInstance};
    
    在view.js中,您需要导入它

    import {myInstance} from './relative-path';
    
    然后调用方法

    myInstance.search('someInput');
    

    服用比香草js更具反应性。。。可能已经回答了,甚至(原始地)

    我有2个非相关(无父/子关系)类:

    两者都在同一屏幕/视图/应用程序/组件树中?然后间接但仍然相关

    我正在努力:

    • 从view.js调用search.js方法
    • 从view.js更改search.js的状态值
    有几种方法可以管理公共状态(值或方法):

    • 在common parent()中声明,甚至是top
      或非常感谢!方法2是可行的。
      
      import {myInstance} from './relative-path';
      
      myInstance.search('someInput');