gpt4 book ai didi

reactjs - 将数组传递给组件

转载 作者:行者123 更新时间:2023-12-04 10:10:09 25 4
gpt4 key购买 nike

我在尝试将我从数据库获取的数组从一个组件发送到另一个组件时遇到问题。
我的意思是,我正在获取 JSON 数据,然后必须将该数据传递给另一个组件。
我正在考虑使用 map 方法。
我检查了我的控制台,我注意到我从数据库中获取了正确的数据,但是当我尝试通过状态发送它时,在我想要获取信息的类中为空
获取对象的类:

import React from 'react'
import { withRouter } from 'react-router-dom'
import MovieList from './MovieList'
import MoviesService from '../services/MoviesService'

class MovieListGet extends React.Component {
constructor (props) {
super(props)
this.state = {
movies: []
}
}

async componentDidMount () {
await this._getMovies()
}

async _getMovies () {
const response = await MoviesService.getMovies()
this.setState({ movies: response.data })
console.log(this.state.movies)
}

async _deleteMovie (id) {
}

_navigateToCreateMovies () {
// Adrress
}

render () {
return (
<div>
<MovieList
movies = {this.state.movies}
onCreateMovie={this._navigateToCreateMovies.bind(this)}
onDelete={this._deleteMovie.bind(this)}
/>
</div>
)
}
}

export default withRouter(MovieListGet)
必须获取数组的类
/* eslint-disable react/prop-types */
import React from 'react'
import {...} from '@material-ui/core'
import { ... } from '@material-ui/icons'

class MovieList extends React.Component {
constructor (props) {
super(props)

const { movies } = props

this.state = {
_movies: []
}
}

componentDidMount () {
console.log(this.props.movie)
this.setState({ _movies: this.props.movies })
}

_renderMovies () {
if (!this.state._movies || this.state._movies.length < 1) {
return (
// Something
)
} else {
return this.state._movies.map(m => (
// something
)
)
}
}

render () {
return (
// Something
)
}
}

export default (MovieList)

最佳答案

MoviesListGet 应该像这样传递 Prop :

   <MovieList
movies={this.state.movies}
onCreateMovie={this._navigateToCreateMovies.bind(this)}
onDelete={this._deleteMovie.bind(this)}
/>

然后在 MoviesList 组件中,您可以在 renderMovies 方法中像这样使用它:
class MovieList extends React.Component {
renderMovies () {
if (!this.props.movies || this.props.movies.length < 1) {
return (
// Something
)
} else {
return this.props.movies.map(m => (
// something
)
)
}
}

render () {
return (
// Something
)
}
}

export default MovieList;

关于reactjs - 将数组传递给组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61369673/

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