小编H3l*_*nik的帖子

Next.js 13“窗口未定义”

我写了一个如下所示的组件:

'use client'

export const HorizontalModule = (props: any) => {
    ...

    return (
        {scrollPosition >= 0 && (
            <FirstModule />
          )}

          {scrollPosition >= window.innerHeight * 2 && (
            <SecondModule />
          )}        
    )
})
Run Code Online (Sandbox Code Playgroud)

但我收到“窗口未定义”错误。

阅读不同的帖子,我发现大多数人发现使用动态导入很有用,所以我在父组件(即 nextjs 页面)中执行此操作:

const HorizontalModule = dynamic<any>(
  () => import('./HorizontalModule/HorizontalModule').then((mod) => mod.HorizontalModule),
  {
    ssr: false,
    suspense: true,
    loading: () => <p>Loading...</p>
  }
)
Run Code Online (Sandbox Code Playgroud)

起初我收到此错误:“对象不是函数”

现在我收到“不支持的服务器组件类型:未定义”

我不完全知道我做了什么来切换错误,但它仍然不起作用。

我必须提到,我在 Horizo​​ntalModule 代码中使用了窗口对象,但当useEffects我在渲染函数中使用它时,所有的都停止工作。

我还尝试在组件内部编写如下验证:

if (window === undefined) return (<></>)
return (...)
Run Code Online (Sandbox Code Playgroud)

我得到了相同的窗口未定义对象或水合错误。

我不知道还有什么可做的,ssr false不起作用,悬念也,窗口条件......

reactjs next.js next.js13

19
推荐指数
1
解决办法
2万
查看次数

如何在 Laravel 项目中正确安装 Vuetify

我已经挣扎了几个小时试图在我的 laravel 项目中安装 Vuetify,但我无法使其正常工作,Vuetify 组件运行良好,但图标和断点没有,我尝试了一切,现在我有点厌倦了,我希望有人可以帮助我...

按照 vuetify 文档,我在 app.js 中写了这个

require('./bootstrap');

import Vue from 'vue';
import Vuex from 'vuex';
import router from './router'

import vuetify from './plugins/vuetify.js' // path to vuetify export

Vue.use(Vuex);

new Vue({
  vuetify,
  router,
}).$mount('#app')
Run Code Online (Sandbox Code Playgroud)

和单独的 vuetify.js 文件

import '@mdi/font/css/materialdesignicons.css' // Ensure you are using css-loader
import Vue from 'vue'
import Vuetify from 'vuetify/lib'

Vue.use(Vuetify)

export default new Vuetify({
  icons: {
    iconfont: 'mdi', // default - only for display purposes
  },
})
Run Code Online (Sandbox Code Playgroud)

并将 vuetify-loader 添加到我的 webpack.mix.js

const …
Run Code Online (Sandbox Code Playgroud)

laravel vue.js vuetify.js

3
推荐指数
1
解决办法
3241
查看次数

Dockerized Symfony 5 应用程序错误“驱动程序中发生异常:找不到驱动程序”

我正在学习 Docker,所以我尝试对我之前制作的一个旧项目进行 dockerize,它是一个 Symfony 5 应用程序,它就像一个商店应用程序,因此它使用 mysql 数据库。

我有以下 docker compose

version: '3.7'
services:
  php:
    build: 
        context: .
        dockerfile: docker/build/php/Dockerfile
    ports: 
        - "9090:80"

  mysql:
    image: mysql:5.7
    environment: 
        - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-root}
Run Code Online (Sandbox Code Playgroud)

现在,里面docker/build/php/Dockerfile

FROM php:7.3.3-apache

COPY . /var/www/html
Run Code Online (Sandbox Code Playgroud)

当我构建图像然后运行docker-compose up它时,一切似乎都工作正常,当我转到 时,localhost:9090我收到有关权限的错误,因此我chmod -R 777 var在 php-apache 容器内运行来修复它,我刷新页面,然后我得到了An exception occurred in driver: could not find driver

在谷歌上搜索我发现了几个解决方案,上面写着“我需要运行这个命令来修复它”

sudo apt-get install php7.2-mysql

当我运行时会发生这种情况

E: 无法找到软件包 php7.2-mysql

E:无法通过 glob 'php7.2-mysql' 找到任何包

E:无法通过正则表达式“php7.2-mysql”找到任何包

或者这个

apt-get 安装 php-mysql

这会引发此错误

软件包“php-mysql”没有安装候选者

有关安装某些内容的任何其他命令都会引发类似于上面两个错误之一的错误,我该如何修复此驱动程序错误? …

php mysql debian symfony docker

1
推荐指数
1
解决办法
4390
查看次数

标签 统计

debian ×1

docker ×1

laravel ×1

mysql ×1

next.js ×1

next.js13 ×1

php ×1

reactjs ×1

symfony ×1

vue.js ×1

vuetify.js ×1