首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >惯性网络状态302

惯性网络状态302
EN

Stack Overflow用户
提问于 2022-08-01 14:28:09
回答 1查看 158关注 0票数 -1

我正在使用Laravel惯性,当我试图发布新用户以后端获得302网络状态时,我会做出反应,如下所示:

CreateUser.jsx:

代码语言:javascript
复制
const onSubmit = (e) => {
    e.preventDefault()
    post(route('users.store'), { data, onSuccess: () => reset() })
}

UserController:

代码语言:javascript
复制
public function store(UserRequest $request)
{
    $attributes = $request->toArray();
    User::create($attributes);

    return back()->with([
        'type' => 'success',
        'message' => 'User was cretaed.'
    ]);
}

UserRequest:

代码语言:javascript
复制
public function rules()
{
    return [
        'name' => ['required','alpha'],
        'username' => ['unique:users','required','alphanum'],
        'email' => ['unique:users','required','email'],
        'password' => ['required', Password::defaults()],
        'location' => ['required']
    ];
}

到目前为止,我所得到的是:

Update I试图访问subseq GET req响应,结果是验证错误:

错误本身已经处理过了,但是错误通知从未发出:

代码语言:javascript
复制
import { useForm } from '@inertiajs/inertia-react'
import React from 'react'

export default function CreateUser({errors}) {
    const { data, setData, post, reset } = useForm({
        name: '',
        username: '',
        email: '',
        location: '',
        password: ''
    });

    const onChange = (e) => setData({...data, [e.target.id]: e.target.value})

    const onSubmit = (e) => {
        e.preventDefault()
        post(route('users.store'), { data, onSuccess: () => reset() })
    }


    return (
        <div className="card">
            <div className="card-header">Create New User</div>
            <div className="card-body">
                <form onSubmit={onSubmit}>
                    <div className="col-md-6">
                        <div className="mb-3">
                            <label htmlFor="name" className="form-label">Name</label>
                            <input type="text" className="form-control" id="name" name="name" value={data.name} onChange={onChange}/>
                            {errors && (<div className="text-danger mt-1">{errors.name}</div>)}
                        </div>
                        <div className="row">
                            <div className="col-md-6">
                                <div className="mb-3">
                                    <label htmlFor="username" className="form-label">Username</label>
                                    <input type="text" className="form-control" id="username" name="username" value={data.username} onChange={onChange}/>
                                </div>
                            </div>
                            <div className="col-md-6">
                                <div className="mb-3">
                                    <label htmlFor="email" className="form-label">Email</label>
                                    <input type="text" className="form-control" id="email" name="email" value={data.email} onChange={onChange}/>
                                    {errors && (<div className="text-danger mt-1">{errors.email}</div>)}
                                </div>
                            </div>
                        </div>
                        <div className="row">
                            <div className="col-md-6">
                                <div className="mb-3">
                                    <label htmlFor="location" className="form-label">Location</label>
                                    <input type="text" className="form-control" id="location" name="location" value={data.location} onChange={onChange}/>
                                    {errors && (<div className="text-danger mt-1">{errors.location}</div>)}
                                </div>
                            </div>
                            <div className="col-md-6">
                                <div className="mb-3">
                                    <label htmlFor="password" className="form-label">Password</label>
                                    <input type="password" className="form-control" id="password" name="password" value={data.password} onChange={onChange}/>
                                    {errors && (<div className="text-danger mt-1">{errors.password}</div>)}
                                </div>
                            </div>
                        </div>
                    </div>
                    <button className="btn btn-primary" type="submit">Save</button>
                </form>
            </div>
        </div>
    )
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-05 05:24:06

为了在React.js页面中使用共享数据,您需要使用usePage(),这就是您访问道具的方式。

下面是一个示例从医生那里

代码语言:javascript
复制
import { usePage } from '@inertiajs/inertia-react'

export default function Layout({ children }) {
  const { flash } = usePage().props

  return (
    <main>
      <header></header>
      <content>
        {flash.message && (
          <div class="alert">{flash.message}</div>
        )}
        {children}
      </content>
      <footer></footer>
    </main>
  )
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73195238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档