【发布时间】:2020-12-07 02:30:07
【问题描述】:
我有两个不同的组件:MyComponent 和 BookDisplay
MyComponent
class MyComponent extends Component {
constructor() {
super()
this.state = {
book: "A"
}
}
updateBook() {
this.setState({book: "B"})
}
render() {
const {book} = this.state
return (
<BookDisplay updateBook = {() => this.updateBook()} book={book} />
)
}
}
BookDisplay
const BookDisplay = ({book, updateBook}) => {
return (
<View>
<Text onPress = {updateBook} >
{book}
</Text>
</View>
)
}
在浏览了各种 JS、react 和 react-native 资源后,我目前遇到的问题是试图理解在 BookDisplay 组件上调用 updateBook 的一行
<BookDisplay updateBook={() => this.updateBook()} ... />
这样写是不是因为 updateBook 是在MyComponent 中定义的函数,这就是我们如何为 prop 分配函数?为什么不是updateBook={this.updateBook()}呢?
谢谢!
【问题讨论】:
-
快速提问:您使用类而不是使用钩子的新方法是否有原因?
-
这是 React Native in Action 的教科书示例
标签: javascript react-native arrow-functions