如果我返回一个对象:
return Response::json([
'hello' => $value
]);
Run Code Online (Sandbox Code Playgroud)
状态代码将是200.如何将消息更改为201,并使用json对象将其发送?
我不知道是否有办法在Laravel中设置状态代码.
我有一个带有链接的"主页"组件,当您单击链接时,产品组件将随产品一起加载.我还有另一个始终可见的组件,显示"最近访问过的产品"的链接.
这些链接在产品页面上不起作用.单击链接时会更新URL,并且会进行渲染,但产品组件不会使用新产品进行更新.
请参阅此示例: Codesandbox示例
以下是index.js中的路由:
<BrowserRouter>
<div>
<Route
exact
path="/"
render={props => <Home products={this.state.products} />}
/>
<Route path="/products/:product" render={props => <Product {...props} />} />
<Route path="/" render={() => <ProductHistory />} />
<Link to="/">to Home</Link>
</div>
</BrowserRouter>;
Run Code Online (Sandbox Code Playgroud)
ProductHistory中的链接如下所示:
<Link to={`/products/${product.product_id}`}> {product.name}</Link>
Run Code Online (Sandbox Code Playgroud)
所以他们匹配Route path="/products/:product"
.
当我在产品页面上并尝试关注ProductHistory链接时,会更新URL并进行渲染,但组件数据不会更改.在Codesandbox示例中,您可以取消注释Product components render function中的警报,以便在您按照链接时看到它呈现,但没有任何反应.
我不知道问题是什么......你能解释一下问题并找到解决办法吗?那太好了!
javascript reactjs react-router react-router-v4 react-router-dom
我想发送一个带对象的get请求.将在服务器上使用对象数据来更新会话数据.但是这个对象似乎没有被正确发送,因为如果我尝试将其发回去打印出来,我只会得到:
" N; "
我可以用这样的jQuery来做它并且它有效:
$.get('/mysite/public/api/updatecart', { 'product': this.product }, data => {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
该对象通过laravel从服务器发送回来,如下所示:
public function updateCart(Request $request){
return serialize($request->product);
Run Code Online (Sandbox Code Playgroud)
同样的事情不适用于axios:
axios.get('/api/updatecart', { 'product': this.product })
.then(response => {
console.log(response.data);
});
Run Code Online (Sandbox Code Playgroud)
我用axios设置了一个默认的baseURL,所以url是不同的.它正确到达api端点,函数返回发送的内容,这显然不是对象.结果我只得到" N ".
我尝试将语法从 Vue 2 转换为 Vue 3,但如果您在 Vue 2 中看到以下代码,我不确定如何包含 mixins和Components :
import App from "./App.vue";
const app = new Vue({
mixins: [globalMixin],
router,
el: '#app',
store,
components: {
Thing,
Hello
},
render: h => h(App)
});
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,这是 Vue 3 语法:
const app = createApp(App)
app
.use(store)
.use(router)
app.mount('#app')
Run Code Online (Sandbox Code Playgroud)
vue 2 示例有一个 mixin 和两个组件,但如何将其添加到 Vue 3 语法中?您可以通过执行以下操作来添加组件:app.component('Thing', Thing)
但这只是一个组件...我应该以这种方式一一添加它们吗?那么 mixin 呢?
我想知道是否有一种好方法可以有条件地将一个或多个道具传递给子组件。
如果有时有一套id
,那么我想把它传承下去。我不能设置id
为 null,因为 prop 必须有一个值。我之前已经通过使用“ v-if
”解决了这个问题,如下所示:
<survey-wrapper v-if="id" :inputJson="inputJson" :id="id"></survey-wrapper>
<survey-wrapper v-else :inputJson="inputJson"></survey-wrapper> // <-- no id
Run Code Online (Sandbox Code Playgroud)
但这是一种看起来很糟糕的解决方法,如果组件有很多 props,它就会变成大量代码。如果您有两个可能已设置或未设置的道具怎么办?
我想使用css在Material UI表上设置列宽(不是使用"classes"进行反应).但我不明白如何控制列宽.我尝试在TH列上设置宽度,但它不起作用.
参见示例: Material ui table示例 (请参阅style.css)
我不明白如何在Mui表的" 简单表 "上控制表列宽度:简单表(您可以看到第一列比其他列宽.如何?)
那么它是如何工作的,我该如何修改设置呢?
如果我在项目根目录中有一个文件夹“functions”,其中包含导出的函数(在文件中oneFunction.tsx
):
export function myFunc() {
const thing = 'Some text';
return thing;
}
Run Code Online (Sandbox Code Playgroud)
我尝试将其导入到这样的组件中:
import {myFunc} from '/functions/oneFunction';
Run Code Online (Sandbox Code Playgroud)
它几乎可以在开发中使用,我可以使用该函数,但出现打字稿错误:
Cannot find module '/functions/oneFunction' or its corresponding type declarations.
Run Code Online (Sandbox Code Playgroud)
如果我运行它就不会编译yarn build
。
如果我删除斜杠:{myFunc} from 'functions/oneFunction';
,打字错误就会消失,但会出现编译错误:
Failed to resolve import "functions/oneFunction"
Run Code Online (Sandbox Code Playgroud)
所以我想知道如何从根目录导入?
我有“src”文件夹的路径别名,可以使用,但我没有成功为根创建别名。
我在 tsconfig 中尝试过:
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"#root/*": [ "." ]
}
Run Code Online (Sandbox Code Playgroud)
在 vite.config 中:
resolve: {
alias: {
'@': resolve(__dirname, './src'),
"#root": resolve(__dirname),
},
},
Run Code Online (Sandbox Code Playgroud)
(也已安装@types/node
并"types": ["node"]
到 …
使用 Vue 3(组合 api)+ Typescript ,我尝试在使用接口定义道具后设置它们的默认值。当我尝试[]
在其中一个道具上设置默认值时,出现打字稿错误。如何设置默认的空数组?
<script setup lang="ts">
interface IProps {
title: string;
things: any[];
productUrl: any;
}
const props = withDefaults(defineProps<IProps>(), {
title: "",
things: [], //<-- error (se below)
productUrl: "",
});
Run Code Online (Sandbox Code Playgroud)
错误:
Type 'never[]' is not assignable to type '(props: Readonly<IProps>) => any[]'.
Run Code Online (Sandbox Code Playgroud)
它还说:
The expected type comes from property 'things' which is declared here on type
'InferDefaults<Readonly<IProps>>'
Run Code Online (Sandbox Code Playgroud) 我正在遵循一个教程,该教程使用.css
名为PreCSS(一组添加类Sass功能的插件)和PostCSS的软件包在文件中使用变量.gulp需要包装.
我有一个调用的文件_variables.css
,当定义变量时,一切都变成红色,并且它表示"选择器匹配未知元素".例如:
$blue: #0076A3;
Run Code Online (Sandbox Code Playgroud)
代码正在运行,所以我需要让PhpStorm以某种方式识别这段代码.
但如果使用Sass代替它会有用吗?但是,使用变量也是一样的原则.
在项目设置 - 检查中,SASS/SCSS被激活,所以我猜它应该识别Sass变量.我不知道是不是因为我使用这个PreCSS软件包.
可以用某种方式解决罪吗?
我想使用 lodash 油门使函数每 4 秒左右可调用一次不超过一次。
如果用户尝试连续多次激活该功能,则只有第一次点击才能启动该功能。然而,该函数在延迟后被调用额外的时间。立即调用一次,延迟后再次调用。
如何防止额外呼叫?
thing = _.throttle(function() {
console.log('function runs');
}, 4000);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
<button onclick="thing()">click a few times</button>
Run Code Online (Sandbox Code Playgroud)
(小提琴)
vue.js ×3
css ×2
javascript ×2
laravel ×2
typescript ×2
axios ×1
json ×1
lodash ×1
material-ui ×1
php ×1
phpstorm ×1
react-router ×1
reactjs ×1
vite ×1
webstorm ×1