以下是我所做的:Laravel 10,Inertiajs v1
在HandleInertiaRequests上:
public function share(Request $request): array
{
return array_merge(parent::share($request), [
'flash' => [
'success' => $request->session()->get('success')
]
]);
}
在控制器上:
public function store(Request $request)
{
Listing::create($request->all());
return Redirect()->route('listing.index')->with('success', 'Listing was created!');
}
布局:
<template>
<div>
<Link href="/">Main Page </Link>
<Link href="/hello">Show Page</Link>
<!--<div>The page with time:{{ timer }}</div>-->
</div>
<div v-if="flashSuccess" class="success">
{{ flashSuccess }}
</div>
<slot>Default</slot>
</template>
<script setup>
import { Link, usePage } from '@inertiajs/vue3'
import { computed } from 'vue'
const page = usePage()
const flashSuccess = page.props.flash.success
</script>
我的问题是flash消息没有显示,但是如果我做一个热重新加载(我的意思是改变编辑器和页面自动刷新代码),消息工作。没有重新加载什么都没有发生。
1条答案
按热度按时间7uzetpgm1#
你能试着把你的代码改成这样吗?
惯性布局文件:
而不是直接使用
usePage()