gpt4 book ai didi

javascript - 有没有更好的方法将 props 传递给 React 中的组件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:24:04 25 4
gpt4 key购买 nike

这是我的主要 app.js 文件 --- 我试图通过 react-router-dom 将此处定义的状态值和函数作为 Prop 传递给我的子组件:

import React, { Component } from 'react'

class BooksApp extends Component {

state = {
bookRepository: [{tuna: 'sandwhich'}],
searchResults: [],
featuredBook: {}
}

fixer = (someBooks, type) => { //code }

async updateBookRepository(bookID, shelfID) { //code }

async updateSearchResults(userQuery) { // code }

async updateFeaturedBook(bookID, shelfID) {//code }


render() {

const myProps = {
bookRepository:this.state.bookRepository,
searchResults:this.state.searchResults,
featuredBook:this.state.featuredBook,
updateBookRepository:this.updateBookRepository,
updateSearchResults:this.updateSearchResults,
updateFeaturedBook:this.updateFeaturedBook
}

return (
<div>
<Route exact path='/' render={(props) => (
<Bookshelves {...props} {...myProps} />
)}/>

<Route path='/search' render={(props) => (
<Searchpage {...props} {...myProps}/>
)}/>

<Route path='/featuredBook/:bookID' render={(props) => (
<Featuredbook {...props} {...myProps}/>
)}/>

</div>
)
}
}

我正在像这样访问 Prop :

class Bookshelves extends Component {

state = {
shelves: ['currentlyReading', 'wantToRead', 'read']
}

render() {

const { bookRepository } = this.props;

return (
<div>
The props are: {console.log(this.props)}
</div>
)
}
}

这行得通,当我尝试访问它们时,它们都显示在我的 props 下,但我很难理解为什么我需要定义自己的对象,然后将其传递给我的子组件。

有什么方法可以将它们分配给 props-ish 对象本身,以便...

<Route exact path='/' render={(props) => (
<Bookshelves {...props} />
}/>

...会把它们传下去吗?

最佳答案

你可以在一行中解构所有内容

<Route exact path='/' render={(props) => (
<Bookshelves {...props, ...this.state} />
)}/>

关于javascript - 有没有更好的方法将 props 传递给 React 中的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53807933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com