javascript - 调用react函数

标签 javascript reactjs

如何从另一个类和文件调用函数 _toggleDropdown 或 _onWindowClick?

DropDown.js

export default class DropDown extends React.Component {

  _toggleDropdown(e) {
    e.preventDefault()
    this.setState({
      isActive: !this.state.isActive
    })
  }

  _onWindowClick(event) {
    const dropdownElement = findDOMNode(this)
    if (event.target !== dropdownElement && !dropdownElement.contains(event.target) && this.state.isActive) {
      this.setState({
        isActive: false
      })
    }
  }
}

Header.js

<a onClick={what???}>test</a>

最佳答案

如果 DropDown 组件在 Header 中呈现,您可以使用 refs 获取下拉实例并调用其方法。

Header.js

render() {
   return (<div>
      <DropDown ref="dd"/>
      <a onClick={e => this.refs.dd._toggleDropdown(e)}>Toggle</a>
  </div>)
}

如果它们完全不相关,您最好从本地状态切换到某些全局状态管理解决方案,例如 Flux 或 Redux。并使下拉状态成为全局应用程序状态的一部分,任何组件都可以通过分派(dispatch)相应的操作来更改该状态。

关于javascript - 调用react函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38481931/

相关文章:

javascript - 点击绑定(bind)在Knockout Foreach中自动执行

javascript - 转到 Web Essentials 中的定义

php - 找出哪个页面正在调用 PHP 中的一段 JavaScript

javascript - 如何转换对象数组?

javascript - 如何以 HTML 格式输出 XML

javascript - Firebase:snapshot.val不是函数或其返回值不可迭代

javascript - React Native 无法读取属性未定义错误

javascript - ReactJS:我有一个跳过第一个 Prop 方法的点击处理程序

javascript - 如何通过 slug 获取 Strapi,以及如何填充类别

reactjs - 生命周期组件WillReceiveProps被多次调用