小编use*_*311的帖子

如何检查鼠标是否仍在 Javascript 中的元素上

我想写入控制台的是用户将鼠标悬停在某个元素上超过 2 秒,这是代码:

var $els = document.querySelectorAll('#myDiv');
    for(i = 0; i < $els.length; i++) {
        if ($($els[i]).data('track') == 'hover') {
            $els[i].addEventListener('mouseover', function (e) {
                setTimeout(function() {
                    if ($($els[i]).is(':hover')) {
                        console.log('mouse is still over this element');
                    }
                }, 2000);
            });
        }
    }
Run Code Online (Sandbox Code Playgroud)

即使我将鼠标放在元素上的时间少于 2 秒,该消息也会在 2 秒后写入控制台。我可能在这里遗漏了一些东西:

if ($($els[i]).is(':hover')) {
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助

javascript jquery

13
推荐指数
3
解决办法
3万
查看次数

错误:水合失败,因为初始 UI 与使用 useSession() 和 React-bootstrap 在服务器上呈现的内容不匹配

我正在使用 next.js、react18 和 next-auth。我有一个登录组件,可以检查会话并显示登录或注销链接,具体取决于您是否登录

import Link from 'next/link';

const Login = () => {
    const {data: session} = useSession();

    if (session) {
        return <Link href="#"><a onClick={() => signOut({callbackUrl: `${window.location.origin}`})}>Sign out</a></Link>
    } else {
        return <Link href="#"><a onClick={() => signIn()}>Log in</a></Link>
        
    }
Run Code Online (Sandbox Code Playgroud)

这曾经按预期工作,但后来我安装了react-bootstrap,我像这样更改了链接

import {Nav} from "react-bootstrap";

return <Nav.Link href="#"><a onClick={() => signOut({callbackUrl: `${window.location.origin}`})}>Sign out</a></Nav.Link>;
return <Nav.Link href="#"><a onClick={() => signIn()}>Log in</a></Nav.Link>;
Run Code Online (Sandbox Code Playgroud)

我开始收到这个错误

Error: Hydration failed because the initial UI does not match what was rendered on the server.
Run Code Online (Sandbox Code Playgroud)

我知道我可以降级到 React …

javascript reactjs react-bootstrap next.js

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

symfony:如何为不同的环境设置配置参数文件?

如何为每个环境设置不同的配置参数文件?

目前,参数parameters.yml都用于环境devprod环境,但我需要不同的参数才能在prod中部署我的应用程序.

symfony symfony-2.8 symfony-3.4 symfony4

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

如何在 Symfony4 api-platform 中隐藏实体属性

我有这个实体

/**
* @ApiResource(
*       collectionOperations={
*           "get"={
*               "access_control"="is_granted('IS_AUTHENTICATED_FULLY')"
*           },
*           "post"={
*               "access_control"="is_granted('IS_AUTHENTICATED_FULLY')"
*           }
*       },
*       itemOperations={
*       "get"={
*               "access_control"="is_granted('ROLE_ADMIN') or object.getUser() == user"
*           },
*           "put"={
*               "access_control"="is_granted('ROLE_ADMIN') or object.getUser() == user"
*          },
*           "delete"={
*               "access_control"="is_granted('ROLE_ADMIN') or object.getUser() == user"
*          }
*       }
* )
* @ORM\Entity(repositoryClass="App\Repository\FeedRepository")
*/
class Feed implements AuthoredEntityInterface
{
/**
 * @ORM\Id()
 * @ORM\GeneratedValue()
 * @ORM\Column(type="integer")
 */
private $id;

/**
 * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="feeds")
 * @ORM\JoinColumn(nullable=false) …
Run Code Online (Sandbox Code Playgroud)

php api symfony api-platform.com

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

提供了无效的值(无效的IRI?)错误测试api平台端点

我有一个Product实体,与另一个与manyToOne关联的User实体相关

class Product implements AuthoredEntityInterface
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;

/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="products")
* @ORM\JoinColumn(nullable=false)
*/
private $user;

/**
* @ORM\Column(type="string", length=255)
*/
private $name;

/**
* @ORM\Column(type="double")
*/
private $price;

//various getters and setters

}
Run Code Online (Sandbox Code Playgroud)

AuthoredEntityInterface有助于将用户设置为当前登录的用户。当我对/ api / products进行api调用(我使用邮递员)时,传递的json如下所示:

{
    "name": "my product",
    "price": 10
}
Run Code Online (Sandbox Code Playgroud)

这将起作用,并创建一个新记录。问题出在单元测试上。我打这样的电话:

$headers = [
        'HTTP_AUTHORIZATION' => 'Bearer ' . $token,
        'CONTENT_TYPE' => 'application/ld+json',
        'HTTP_ACCEPT' => 'application/ld+json'
    ];
$postData = [
    'name' => 'my product',
    'price' => …
Run Code Online (Sandbox Code Playgroud)

php symfony api-platform.com

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

如何使用 sed 在一行中切换注释

我有一个 txt 文件,其中有一行我想评论,我正在使用 sed

注释掉

sed -i 's/line1/#line1/' myfile.ini
Run Code Online (Sandbox Code Playgroud)

取消注释

sed -i 's/#line1/line1/' myfile.ini
Run Code Online (Sandbox Code Playgroud)

这是可行的,但问题是有时我会错误地运行两次,最后得到像这样的行

##line1
Run Code Online (Sandbox Code Playgroud)

所以当我运行取消注释命令时,该行现在是

#line1
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以切换评论?这是在 bash 脚本内,因此我很乐意在必要时添加几行。

谢谢

linux bash sed

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

如何使用 React 钩子和 Redux 从 useEffect 执行 store.unsubscribe

我有一个使用 redux 和 hooks 的 React 无状态组件。我需要在页面加载时显示项目数 (useEffect) 并在每次添加或删除项目时更新它 (store.subscribe)

useEffect(() => {
    setState({
        items: store.getState().items.length
    });
}, []);

store.subscribe(() => {
    setState({
        items: store.getState().items.length
    });
});
Run Code Online (Sandbox Code Playgroud)

但这导致控制台显示警告无法在未安装的组件上执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 useEffect 清理函数中的所有订阅和异步任务。 .

如何从 useEffect 内部取消订阅?

javascript reactjs redux react-hooks

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

在 next-auth 中将来自 API 的 JWT 令牌存储在哪里

我按照一些在线教程在 next-auth 中实现了这个

import NextAuth from "next-auth"
import Providers from "next-auth/providers";
const https = require('https');

export default NextAuth({
  providers: [
    Providers.Credentials({
      name: 'Credentials',
      credentials: {
        email: { label: "Email", type: "email" },
        password: {  label: "Password", type: "password" }
      },
      async authorize(credentials) {
        const url = 'https://localhost/auth';

        const httpsAgent = new https.Agent({
          rejectUnauthorized: false,
        });

        const res = await fetch(url, {
          method: 'POST',
          body: JSON.stringify(credentials),
          agent: httpsAgent,
          headers: {
            "Content-Type": "application/json"
          }
        })
        const user = await res.json();

        if (res.ok …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs next.js next-auth

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

在 next.js 中调用 API 并避免 CORS 错误的最佳实践

我正处于设置 next.js 应用程序的早期阶段,到目前为止我只有使用 React 的经验。

我在 localhost:3000 上设置了一个前端应用程序 (next.js),在 localhost:5000 上设置了一个后端应用程序 (node.js/express)。他们都工作。

现在我尝试从前端调用快速端点,我正在做的是:

const registerUser = async event => {
        event.preventDefault()
        
        const res = await fetch(
            process.env.NEXT_PUBLIC_SERVER + '/user/signup',
            {
                body: JSON.stringify({
                    username: event.target.name.value,
                    email: event.target.email.value,
                    password: event.target.password.value
                }),
                headers: {
                    'Content-Type': 'application/json'
                },
                method: 'POST'
            }
        )

        result = await res.json()
    }
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息

Access to fetch at 'http://localhost:5000/user/signup' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header …
Run Code Online (Sandbox Code Playgroud)

node.js cors express reactjs next.js

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

上传所有文件后的dropzone操作

我以这种方式使用dropzonejs:

<script type="text/javascript">
        jQuery(function($) {
            try 
            {
                $(".dropzone").dropzone({
                    paramName: "file", // The name that will be used to transfer the file
                    maxFilesize: 0.5, // MB
                    uploadMultiple: true,
                    //addRemoveLinks : true,
                    dictDefaultMessage :
                        '<span class="bigger-150 bolder"><i class="icon-caret-right red"></i> Drop files</span> to upload \
                        <span class="smaller-80 grey">(or click)</span> <br /> \
                        <i class="upload-icon icon-cloud-upload blue icon-3x"></i>',
                    dictResponseError: 'Error while uploading file!',               
                    //change the previewTemplate to use Bootstrap progress bars
                    previewTemplate: "<div class=\"dz-preview dz-file-preview\">\n  <div class=\"dz-details\">\n    <div class=\"dz-filename\"><span data-dz-name></span></div>\n    <div class=\"dz-size\" data-dz-size></div>\n    <img …
Run Code Online (Sandbox Code Playgroud)

javascript dropzone.js

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

symfony2:如何使更新时不需要表单字段

我有一个带有文件字段的表单,我希望只有在创建记录时才强制使用此字段,而不是在更新时。在 buildForm 我只有这个领域:

->add('file', 'file', array(
            'required'    => false,
        ))
Run Code Online (Sandbox Code Playgroud)

在控制器中,我检查 id 以决定是插入还是更新

谢谢

symfony

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