Javascript 需要在react中将函数从一个文件调用到另一个文件,而不导入整个组件

Javascript 需要在react中将函数从一个文件调用到另一个文件,而不导入整个组件,javascript,reactjs,Javascript,Reactjs,我有两个文件First.js和Second.js,它们不是子文件和父文件,它们里面有很多函数。我想使用First.js中的1个函数将其放入另一个文件Second.js中 First.js export default Header extends React.Component{ constructor(){ super(); } updateXS(e){ alert('Test'); } } Second.js export default Second

我有两个文件First.js和Second.js,它们不是子文件和父文件,它们里面有很多函数。我想使用First.js中的1个函数将其放入另一个文件Second.js中

First.js

export default Header extends React.Component{

  constructor(){
    super();
  }

  updateXS(e){
    alert('Test');
  }
}
Second.js

export default Second extends React.Component{

  constructor(){
    super();

  }
  solveVariable() {
    updateXS()// from first file
  }


  render(){
    return (
      <div className="displayinline col-md-12 ">
         <button onClick={self.solveVariable.bind(this)}>Solve</button>
      </div>
    );
  }
}
export default Second.Component{
构造函数(){
超级();
}
solveVariable(){
updateXS()//来自第一个文件
}
render(){
返回(
解决
);
}
}

单击需要调用updateXS()的“求解”按钮时,第一个文件中还存在其他函数render()。

您需要将该操作冒泡到容器中

export default Second extends React.Component{

  constructor(){
    super();

  }
  solveVariable() {
    this.props.handleSolveVariable();
  }


  render(){
    return (
      <div className="displayinline col-md-12 ">
         <button onClick={self.solveVariable.bind(this)}>Solve</button>
      </div>
    );
  }
}
export default Second.Component{
构造函数(){
超级();
}
solveVariable(){
this.props.handleSolveVariable();
}
render(){
返回(
解决
);
}
}
然后容器可以处理求解部分,设置状态并将其传递给子级

class Container extends Component {
  solveThis(e) {
    // ... calculate
    return result;
  }
  handleSolveVariable = (e) => {
    const result = this.solveThis(e);
    this.setState({result})
  }
  render() {
    return (
      <div>
        <First result={this.state.result}/>
        <Second result={this.state.result} handleSolveVariable={this.handleSolveVariable}/>
      </div>
    );
  }
}
类容器扩展组件{
解决此问题(e){
//……算计
返回结果;
}
handleSolveVariable=(e)=>{
const result=this.solveThis(e);
this.setState({result})
}
render(){
返回(
);
}
}
您应该记住react的«操作向上,数据向下»哲学,而不是依赖于观察Jquery中的事件

孩子们可以根据新状态做出反应,然后重新启动。
您还可以使用componentWillReceiveProps来比较新的道具并对其作出反应。

您可以弹出或创建一个utils函数文件,然后导出它们。如果您认为这是一个可以在整个应用程序中使用的函数,那么它可能是最好的解决方案。

如果该函数是可重用的,那么它不应该是组件的一部分。相反,您可以创建一个实用程序函数并在两个组件中导入。该函数使用的是道具以及其他方法和属性。通过参数传递您正在使用的数据。使用,我想您会很好@有什么例子吗@苏曼昆都