小编Dra*_*gar的帖子

React Hooks - 输入 1 个字符时,输入失去焦点

我正在使用 React Hooks - 重写表单以使用钩子概念。一切都按预期工作,除了一旦我在输入中输入任何 1 个字符,输入就会失去焦点。

我猜有一个问题,组件的外部不知道组件内部的变化,但是我该如何解决这个问题呢?

这是 useForm 钩子:

import React, { useState } from "react";

export default function useForm(defaultState, label) {
  const [state, setState] = useState(defaultState);

  const FormComponent = () => (
    <form>
      <label htmlFor={label}>
        {label}
        <input
          type="text"
          id={label}
          value={state}
          placeholder={label}
          onChange={e => setState(e.target.value)}
        />
      </label>
    </form>
  );

  return [state, FormComponent, setState];
}
Run Code Online (Sandbox Code Playgroud)

这是使用 Hook 的组件:

function App() {
  const [formValue, Form, setFormValue] = useForm("San Francisco, CA", "Location");

  return (
    <Fragment>
      <h1>{formValue}</h1>
      <Form />
    </Fragment>
  );
}
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

16
推荐指数
3
解决办法
8695
查看次数

macOS 从终端获取 GPU 历史记录(使用情况)

在最新版本的 Activity Monitor 中,可以按 CMD+4 并获取 GPU 使用情况的图形表示。但是,我想从我的本机 macOS 应用程序获取此信息,因此我正在寻找一种从 macOS 命令行获取此数据(显示在活动监视器中)的方法。

macOS 上的活动监视器 GPU 历史记录信息

macos terminal command-line gpu

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

为 iOS 键盘创建自定义表情符号

我做了一项关于为新的 iOS 9 制作自定义键盘扩展并向其中添加自定义表情符号的研究。我四处寻找,我什么也没找到。人们说我的问题无法解决。即使在 iOS 论坛和其他类似的地方。KIMOJI 应用程序来了。它在 App Store 上有大量下载,但似乎没有人知道它是如何构建的。可以复制一组字符发送给其他人,看起来很容易,但我没有找到如何去做。

我也读过关于 Unicode 标准的文章,但我看不出应该如何实现它。

有人说,即使是 Apple 也永远不会在其 Store 上接受这种应用程序。这是真的?Kimoji 怎么可能到那里?

链接到 App Store 上的 Kimoji 应用程序(它不是免费的)链接在这里

unicode ios emoji custom-keyboard

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

使用“fetch”或“request”发送多部分/表单数据的正确方法

这是我要发送到服务器的数据的结构:

{
   attachment: [File],
   foo: String,
   bar: String
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在尝试发送一组文件以及一些其他数据。为了存储所有这些数据,我使用了FormData()JavaScript 官方 API 中提供的构造函数。formData我正在这样填充:

for (let i = 0; i < this.state.files.length; i++) {
    let f = this.state.files[i];
    this.formData.append('attachment', f, f.name);
}
this.formData.append('foo', this.state.foo);
this.formData.append('bar', this.state.bar);
Run Code Online (Sandbox Code Playgroud)

旁注:使用 React,react-dropzone进行文件上传。我现在正在尝试将此数据提交到服务器。我首先尝试使用 Fetch API,如下所示:

fetch(url, {
    method: method,
    body: data,
    headers: {
      ...authHeader(authToken)
    }
}
Run Code Online (Sandbox Code Playgroud)

没有太多的成功。方法是POST. authHeader(authToken)只是生成Authorization: Bearer .... 问题是我认为指定的标头被我的身份验证标头覆盖。

所以我尝试使用requestrequest-promise-native。我做了类似的事情:

rp({
    url,
    method,
    headers: {
      ...authHeader(authToken)
    },
    formData: data …
Run Code Online (Sandbox Code Playgroud)

javascript ajax fetch reactjs

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

以编程方式设置 IBInspectable

我想根据我获得的互联网信息设置不同的 IBInspectable 项目。例如,我有绿色、红色和橙色圆圈的 IBInspectables。如果请求说绿色,我想将 isGreen Inspectionable 设置为 Yes,将其他设置为 no。其他两个也是如此。您可以在此处查看 IBInspectables 。我知道我可以使用我放入其中的代码来完成此操作,但是有没有办法以编程方式切换它们?

storyboard ios swift ibinspectable

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