gpt4 book ai didi

javascript - 将状态从 App.js 传递到 React Router 组件

转载 作者:行者123 更新时间:2023-12-02 23:40:26 26 4
gpt4 key购买 nike

我在 App.js 中有一个状态,其中填充了 API 返回的动物数据。这些数据可以通过加载的组件上的 this.state.animals 访问,但我的问题是当将路由更改为 /animals 时,我无法再调用 this.state.animals。就好像我不再有访问权限或数据消失了。当我导航到任何组件时,如何将状态传递给它们?

App.js

import React, { Component } from 'react';
import { BrowserRouter as Router, Route, NavLink } from 'react-router-dom'
import Animals from './components/Animals'

class App extends Component {
state = {
animals: []
}

componentDidMount() {
fetch('animals api path here')
.then(result => result.json())
.then((data) => {
this.setState({ animals: data })
})
.catch(console.log)
}

render() {
return (
<Router>
<NavLink to="/animals">animals</NavLink>
<Route exact path="/animals" render={()=> <Animals parentState={this.state.animals} />} />
</Router>
);
}
}

export default App

组件/Animals.js

import React, { Component } from 'react'

class Animals extends Component {
render() {
console.log(this.state.animals)
return (
<h2>Animals</h2>
//<div>I would loop through and list the animals if I could...</div>
)
}
}

export default Animals

最佳答案

在此示例中,如果您想访问动物数据,则可以在动物组件内使用 {this.props.parentState}

关于javascript - 将状态从 App.js 传递到 React Router 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56103942/

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