小编Eig*_*ght的帖子

“Step”属性不适用于本地日期时间

我试图用来datetime-local选择日期和时间。

输入工作正常,不幸的是我似乎根本无法让该step属性工作。

MDN文档似乎建议我应该能够使用它在几秒钟内设置一个步骤,但这根本不起作用

<form method='post' action='#'>
    <input
      type="datetime-local"
      id="meeting-time"
      name="meeting-time"
      value="2018-06-12T19:30"
      min="2018-06-07T00:00"
      max="2018-06-14T00:00"
      step="900"
    />
<input type='submit' value='Go!'>
</form>
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

html input

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

从 JSON 响应访问 [Symbol(Response internals)]

我正在使用库isomorphic-unfetch( https://www.npmjs.com/package/isomorphic-unfetch ) 从 Rest API 获取 JSON 数据。这就是我提出请求的方式:

    const res = await fetch(
      `url`
    );
Run Code Online (Sandbox Code Playgroud)

要访问身体,我只需要做

    const response = await res.json()
Run Code Online (Sandbox Code Playgroud)

但是如何访问响应标头?如果我将响应记录到我的服务器控制台,这就是我看到的:

Response {
  size: 0,
  timeout: 0,
  [Symbol(Body internals)]: {
    // stuff
  },
  [Symbol(Response internals)]: {
    url: 'request url',
    status: 200,
    statusText: 'OK',
    headers: Headers { [Symbol(map)]: [Object: null prototype] },
    counter: 0
  }
}
Run Code Online (Sandbox Code Playgroud)

什么Symbol(Response internals)?我如何访问它的headers属性?

javascript json header fetch

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

Lighthouse:删除未使用的 Javascript,但 Javascript 已被使用

我正在构建一个博客插件,可以在特定页面上发表评论。目前它的工作方式是js在 html 页面中包含一个脚本,然后在加载时触发该脚本并向页面添加一个评论框。

一切都运行正常,但是当运行 Lighthouse 报告时,我仍然收到“删除未使用的 Javascript”消息。

我认为发生这种情况是因为代码没有立即使用,而是在页面完全加载后启动?

知道我该如何解决这个问题吗?

javascript lighthouse

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

localStorage不会保存包含箭头功能的对象

我正在使用Javascript创建一个基于Web的小型RPG,不幸的是,一旦实现我的保存和加载功能,我的代码的关键部分就完全失败了.

截至目前,我将所有玩家数据保存在我的播放器对象中:

var player = {
    stats: {
        level: 1,
        healthBase: 50,
        health: 50,
        strength: null,
        strengthBase: 7,
        strengthMods: {
        },
    },
};
Run Code Online (Sandbox Code Playgroud)

使用这两个功能:

function save() {
    localStorage.setItem("playerData", JSON.stringify(player));
}

function load() {
    player = JSON.parse(localStorage.getItem('playerData'));
}
Run Code Online (Sandbox Code Playgroud)

这对一切都很有效,除了一小部分.在某些情况下,我需要在我的统计数据中添加修饰符来改变它们,我这样做

player.stats.strengthMods.mods = () => ( 5 );
Run Code Online (Sandbox Code Playgroud)

但是,如果我保存然后加载我的游戏,请致电

player.stats.strengthMods.mods
Run Code Online (Sandbox Code Playgroud)

控制台只显示一个空对象.我无法理解为什么我的浏览器拒绝加载箭头功能,其他一切都完全加载.

知道为什么吗?

javascript serialization json object local-storage

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

地图功能内的 Reactjs 条件

我在这里查看了一堆问题并一遍又一遍地阅读文档,但是无论我做什么,这似乎都不起作用。

如果 X 为真,这应该返回一件事,如果不是,则返回其他内容。它在 map 函数中,因为我需要一次为多件事完成这个。

    function ContentProcessing(props) {

        return (
            <div>
                props.content.map(content => {
                        {content.type === "card" ? (
                            <Card title={content.title} />
                        ) : (
                            <Content title={content.title} paragraph={content.guideline} />
                        )}
                })
            </div>
        );
    }
Run Code Online (Sandbox Code Playgroud)

两者<Card /><Content />返回一个字符串

However I get the error
./src/App.js
Syntax error: /src/App.js: Unexpected token, expected , (79:13)

  77 |      <div>
  78 |          props.content.map(content => {
> 79 |                  {content.type === "card" ? (
     |                          ^
  80 |                      <Card title={content.title} />
  81 …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

MYSQL:返回与最高数字关联的值与 GROUP BY

在我的表中,我有按timestamp. 我想返回一个具有最高timestamp.

这有效:

SELECT max(`timestamp`) FROM `messages`
Run Code Online (Sandbox Code Playgroud)

但是,它只返回timestamp值。所以我也尝试选择该message值:

SELECT max(`timestamp`), `message` FROM `messages`
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'database.messages.message'; this is incompatible with sql_mode=only_full_group_by
Run Code Online (Sandbox Code Playgroud)

所以我添加了一个 GROUP BY:

SELECT max(`timestamp`), `message` FROM `messages`
GROUP BY `message`
Run Code Online (Sandbox Code Playgroud)

然而,这最终会返回表中的每个值。

我知道 GROUP BY 应该统一相同的条目,我完全不知道为什么在这种情况下我被迫使用它以及如何获取最新的条目而不是所有条目。

mysql sql group-by sql-order-by sql-limit

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

通过 Rest API 主体进行 SQL 注入

我目前正在检查我的 Rest API 是否容易受到 SQL 注入的影响,但我对这个过程感到困惑。

我的 API 接受 JSON,然后将请求发送到 Mysql 数据库。我试过发送应该导致 SQL 注入的字符串,例如' OR 'x'='x,但不是被执行,而是作为字符串发送到服务器,我想这意味着它们不是问题。

我现在正在使用 Postman 进行一些更深入的测试,但是如果我尝试将字符串添加到我的参数中,例如:

{
   "name": "test" OR 1 = 1 -- "
}
Run Code Online (Sandbox Code Playgroud)

邮递员只会告诉我 JSON 语法不正确,即使我确实发送了它,我也会收到“无效的 JSON”响应,而它甚至不会到达我的 Rest API。

这是好事还是坏事?我实际上如何测试我的 API?

mysql sql security sql-injection

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

React:div 上的按键监听器

我目前在组件上创建按键侦听器(或任何侦听器)时遇到问题。

本质上,我希望每当我按下“ESC”时都会触发我的监听器,但我发现自己被阻止了。

我的功能组件非常简单,如下所示:


const Component = () => {
  useEffect(() => {
    const handler = (e: KeyboardEvent) => {
      if (e.isComposing || e.keyCode === 27) {
        console.log('do something');
      }
    };

    window.addEventListener('keydown', handler, false);
    return () => window.removeEventListener('keydown', handler, false);
  }, []);

  return <div />;
};
Run Code Online (Sandbox Code Playgroud)

当我的组件被安装时,window监听器被正确添加。不幸的是,组件卸载后,事件侦听器并未被删除。

所以我尝试将事件侦听器专门添加到我正在安装的 div 中:


const Component = () => {
  const ref = useRef(null);
  useEffect(() => {
    const handler = (e: KeyboardEvent) => {
      if (e.isComposing || e.keyCode === 27) {
        console.log('do something'); …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs

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

Alpine.js:如何从外部文件中的函数访问 x 数据?

我刚刚开始使用 Alpine.js,我了解基础知识,但在将函数移到内联脚本标记之外时应用它们时遇到困难。

例如,在index.html

<div x-data="{ loading: false }"/>
  <button
    onClick="post()"
    :class="{ 'active': loading === true }"
  >
    Post Comment
  </button>
</div>
Run Code Online (Sandbox Code Playgroud)

如果post()main.ts

const postComment = () => {
  this.loading = true;
};

window.postComment = postComment;
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它this不是未定义的?

我发现了很多函数保存在 中的示例index.html,但没有发现它们位于单独的文件中。

javascript alpine.js

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

React:无法在移动设备上输入某些输入字段

我现在才注意到这一点,但由于某种原因,我似乎无法在使用 React 和 NextJS 构建的页面中的某些输入字段中输入内容。这只发生在移动设备上,在桌面上,表单可以完美地工作。

然而,这就是奇怪的地方。我可以很好地输入密码,这只发生在其他输入类型上(例如type="text"type="email")上。

仍然可以使用键盘预测在文本框中输入内容,但不能使用普通键盘。

这是我的表格:

function LoginForm(props) {
  return (
    <form onSubmit={props.submitLogin} className={"flex flex-col self-center justify-between w-full"}>
      <div className={"text-xl text-center mb-4"}>Sign In</div>
      <div className={"text-gray-600 text-xs pl-2"}>Username:</div>
      <input
        value={props.formData.username}
        name="username"
        type="text"
        onChange={props.updateField}
        className={"form__username my-1 p-2 rounded border-gray-300 border border-solid"}
      />
      <div className={"text-gray-600 text-xs pl-2"}>Password:</div>
      <input
        value={props.formData.password}
        name="password"
        type="password"
        onChange={props.updateField}
        className={"form__password my-1 p-2 rounded border-gray-300 border border-solid"}
      />
      <button
        className={"bg-blue-500 hover:bg-blue-400 focus:bg-blue-600 focus:shadow-outline p-2 mt-4 rounded border-blue-500 uppercase font-semibold text-gray-100 border border-solid"}
      >Login</button>

      <div className={"p-2 …
Run Code Online (Sandbox Code Playgroud)

input reactjs

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