小编Ric*_*isp的帖子

获取 InnerBlocks 的属性并将其保存到父级

我创建了一个“选项卡式面板”(选项卡式内容)块,它本质上只是一个仅允许“面板”块的 InnerBlocks 组件。创建面板时,必须为面板指定一个标题,然后在面板和选项卡按钮中使用该标题。因此,在选项卡式面板的渲染函数中,我需要从子面板块中提取标题。

我可以使用几种方法,例如在 tabbed-panels-render.php 函数中使用正则表达式来搜索子 html 中的正确属性,但这似乎不是最好的方法。

我认为最简单的解决方案是监听面板块的任何更改并将更改(在本例中为标题和 id)保存到父级。我当前的方法基于此讨论,它使用钩子来监听更改。该部分似乎工作正常,但我需要将输出保存在某处,因此我将它们保存为选项卡式面板块的属性。起初这似乎工作正常,但将“setAttributes”方法直接放在编辑功能中会导致问题。如果页面上有太多选项卡式面板块,则 React 会抛出“渲染过多”错误。

我的“setAttributes”函数应该放在哪里,或者是否有更好的方法将数据从子级传递到父级?我考虑过在子进程中使用 useDispatch 钩子,但是我需要检查很多事件(标题更改、块重新排序、块被删除等)

这里是相关的js和php文件。有一些自定义元素,但您应该能够解析它。

选项卡式面板.js

import { arraysMatch } from 'Components/utils.js'
const { InnerBlocks } = wp.blockEditor
const { createBlock } = wp.blocks
const { Button } = wp.components
const { useDispatch, useSelect } = wp.data
const { __ } = wp.i18n

export const tabbedPanels = {
  name: 'my/tabbed-panels',
  args: {
    title: __('Tabbed Panels', '_ws'),
    description: __('Tabbable panels of content.', '_ws'),
    icon: 'table-row-after',
    category: …
Run Code Online (Sandbox Code Playgroud)

wordpress reactjs wordpress-gutenberg gutenberg-blocks

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

C#中通过串口访问蓝牙数据

所以我在 Unity3D 中工作,用 C# 编程,我听说可以通过串行端口从蓝牙适配器读取数据。我尝试使用此方法将多个蓝牙 USB 适配器连接到我的电脑上。但是,当我尝试打开串行端口时,收到一条错误消息,指出端口不存在。我只包含与问题相关的代码,但 portI 是一个字符串(“COM11”或“COM12”),而 PortIn 是 SerialPort 类型。

void OnGUI() {
    GUI.Label(new Rect(btnX, btnY, btnW, btnH), "PortIn = " + portI);
    if(!connected) {
        for (int i = 0; i<ports.Length; i++) {
            if(GUI.Button(new Rect(btnX, btnY + btnH + (btnH * i), btnW, btnH), ports[i])) {
                portI = ports[i];
            }
        }           
    }       
    if(GUI.Button(new Rect(btnX + (btnW * 2 + 20), btnY, btnW, btnH), "Connect")) {
        portIn = new SerialPort(portI, 9600);               
        portIn.ReadTimeout = 1000;
        if (!portIn.IsOpen) {
            portIn.Open(); …
Run Code Online (Sandbox Code Playgroud)

c# serial-port bluetooth unity-game-engine

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

使用纯 Javascript 通过 AJAX 发送 WordPress 对象

我正在 WordPress 中工作,我正在尝试用纯 JavaScript 替换我的 jQuery 函数。然而,ajax 调用给我带来了问题。这是我成功的 jQuery 和不成功的 JavaScript:

原始的 JQuery

jQuery.ajax({
  url: locals.ajax_url,
  method: 'post',
  context: this,
  data: {
    action: 'get_more_posts',
    page: page,
    loop: typeof loop !== 'undefined' ? loop : locals.wp_query
  }
});
Run Code Online (Sandbox Code Playgroud)

新的JavaScript

var req = new XMLHttpRequest();
req.open('POST', locals.ajax_url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
var l = typeof loop !== 'undefined' ? loop: locals.wp_query;
var s = 'action=get_more_posts&page=' + page + '&loop=' + encodeURIComponent(JSON.stringify(l));
req.send(s);
Run Code Online (Sandbox Code Playgroud)

jQuery 可以工作,但 javascript 无法正确处理循环变量(变量“l”)。

jQuery 发送一个 HTTP 请求,内容如下:

action=get_more_posts&page=2&loop%5Bquery%5D%5Bpage%5D=&loop%5Bquery%5D%5Bpagename%5D=blog&loop%5Bquery_vars%5D%5Bpage%5D=0&loop%5Bquery_vars%5D%5Bpagename%5D=blog&loop%5Bquery_vars%5D%5Berror%5

但 …

javascript php ajax wordpress json

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

InnerBlocks renderAppender 不做任何事情

我正在尝试向我的 InnerBlocks 组件添加自定义 appender。我按照这里的例子:https : //github.com/WordPress/gutenberg/tree/master/packages/block-editor/src/components/inner-blocks

但是,当我使用此代码时,没有任何变化。我是否遗漏了什么或此功能尚未发布?

这是我的代码,但它与示例完全相同。

<InnerBlocks
  renderAppender={ () => (
    <button className="bespoke-appender" type="button">Some Special Appender</button>
  ) }
/>
Run Code Online (Sandbox Code Playgroud)

wordpress-gutenberg

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

限制数字而不使用if语句

我很好奇是否有办法用javascript限制数字而不使用if语句.假设我有一个从0到100的数字,但我只希望它允许30到70.所以小于30的任何东西变成30而大于70的东西变成70.使用if语句它看起来像这样:

var x = 0;
if (x > 70) {
   x = 70;
}
if (x < 30) {
   x = 30;
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找更多涉及算术的解决方案.

javascript math jquery if-statement

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

在LabView中减少数组"分辨率"

真的很简单的问题,我只是无法绕过这种视觉编程.我有一个600的数组.我想通过获取数组的每60个索引的数字将其减少到10的大小.我知道如何用普通的编程语言来做这件事,但我无法弄清楚LabView.任何人都可以怜悯并帮助我吗?到目前为止,我已经在附近的地方了,但很难过.

在此输入图像描述

arrays labview

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