Пожалуйста, найдите ниже рабочий код: Это очень простой способ навигации с помощью реагирующего маршрутизатора:
class Register extends React.Component {
state = {
toDashboard: false,
}
handleSubmit = (user) => {
saveUser(user)
.then(() => this.setState(() => ({
toDashboard: true
})))
}
render() {
if (this.state.toDashboard === true) {
return <Redirect to='/dashboard' />
}
return (
<div>
<h1>Register</h1>
<Form onSubmit={this.handleSubmit} />
</div>
)
}
}
& lt; Redirect /> is
Композитный ✅ Декларативный ✅ пользовательское событие -> изменение состояния -> повторная рендеринга ✅
blockquote>Регистрирующий компонент визуализируется React Router, наш код может выглядеть следующим образом:
class Register extends React.Component { handleSubmit = (user) => { saveUser(user).then(() => this.props.history.push('/dashboard') )) } render() { return ( <div> <h1>Register</h1> <Form onSubmit={this.handleSubmit} /> </div> ) } }
, добавляя withRouter, это будет выглядеть так
import { withRouter } from 'react-router-dom' class Register extends React.Component { handleSubmit = (user) => { saveUser(user).then(() => this.props.history.push('/dashboard') )) } render() { return ( <div> <h1>Register</h1> <Form onSubmit={this.handleSubmit} /> </div> ) } } export default withRouter(Register)
Существует два способа программной навигации с помощью React Router - и history.push. Что вы используете, в основном зависит от вас и вашего конкретного варианта использования, хотя я стараюсь использовать Redirect.
Этот код работает для меня .....
fileUploadController.php открытая функция changeProfile (запрос $ запрос, $ id) {
$updateuser = User::find($id);
if ($request->hasFile('image')) {
$images = $request->file('image');
$destinationPath = public_path('files');
$imageName = time().'.'.$images->getClientOriginalExtension();
$images->move($destinationPath, $imageName);
$updateuser->image= $imageName;
}else{
$updateuser->image= '';
}
$updateuser->update();
return ['message' => 'Image Uploaded Successfully'];
}
public function changeProfile(Request $request,$id){
$this->validate($request, [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$updateuser = User::find($id);
if($request->hasFile('image'))
{
$filewithext = $request->file('image')->getClientOriginalName();
$ext = $request->file('image')->getClientOriginalExtension();
$fileToStrore = $filewithext;
$path = $request->file('image')->storeAs('public/files',$fileToStrore);
$updateuser->image = $fileToStrore;
}
$updateuser->save();
return $updateuser;
}
Этот код работает для меня. Я надеюсь, что это сработает и для вас ... Удачи ..