是否可以从类/组件中的其他(React)组件调用类方法?
示例:
// file x.js
import React, { Component } from 'react'
class X extends Component {
methodY() {
console.log('methodY')
}
render() {
return <div />
}
}
export default X
// file z.js
import React, { Component } from 'react'
class Z extends Component {
render() {
return <button onClick={X.methodY} />
}
}
export default Z
答案 0 :(得分:4)
从技术角度来看可能是可能的 - 但你真的不应该。
在开始使用新框架来接受意识形态及其社区模式时,这一点非常重要。在React的情况下,没有类和方法之类的东西。相反,只有组件和数据(以及某些扩展州)。
遵循 flux 原则,您应该尝试以数据流单向的方式构建应用程序。从上到下。
因此,代替组件Z
调用组件X
上的函数,您可以让X从父组件接收修改该组件状态的函数,然后将新值传递给{ {1}}。
X
如您所见,父组件现在负责处理状态并将不同的兄弟组件连接在一起。
当您进一步探索React时,您可能会开始使用Redux来提取围绕数据的逻辑并完全在组件外部进行状态。您最终会得到的是演示组件和容器组件。