У меня есть компонент под названием OneUser, у меня есть поле ввода и кнопка, при нажатии на эту кнопку я получу новый заголовок из API и перенаправлю на новую страницу, заголовок будет показан в этом компоненте с именем Display.
То, что происходит сейчас, при нажатии кнопки подтверждения происходит маршрутизация, но вызов API не работает.
Пожалуйста, предложите соответствующий ответ для меня
Состояние logi c работает хорошо, поэтому я не написал здесь.
Приложение. js
import React from 'react';
import './App.css';
import OneUser from './Components/OneUser';
import Display from './Components/Display';
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import store from './store'
import {Provider} from 'react-redux'
function App() {
const isAuthenticated = true
return (
<Provider store={store}>
<Router>
<div className="App">
<Switch>
<Route path='/' exact component={OneUser}/>
<Route path='/post' exact component={Display}/>
</Switch>
</div>
</Router>
</Provider>
);
}
export default App;
OneUser.js
import React , {useState, useEffect} from 'react'
import {oneFetchData} from '../redux/oneAction'
import {connect} from 'react-redux'
function OneUser({user,oneFetchData, history}) {
const [id,setId] = useState(1)
const [IdFromButton,setIdFromButton] = useState(1)
const submit = () => {
setIdFromButton(id);
history.push("/post")
}
useEffect( () =>{
oneFetchData(id)
},[IdFromButton]
)
return(
<div>
<input type="text" value={id} onChange={e=> setId(e.target.value)}>
</input>
< button onClick={submit}>Fetch Post</button>
</div>
)
}
const gettingValue = state => {
return{
user: state.data
}
}
const callingAction = dispatch => {
return{
oneFetchData: (id)=>
dispatch(oneFetchData(id))
console.log('dispatched') // not dispatching here function
}
}
Display.js
import React from 'react'
import {useSelector} from 'react-redux'
function Display({history}) {
const user = useSelector( state => state.data)
return (
<div>
<h1>
Title from another component - {user.title}
</h1>
</div>
)
}
export default Display