小编Axe*_*xel的帖子

React - 作为导致额外渲染的道具

我正在处理一些繁重的表格。因此,我试图在任何可以找到的地方压缩性能。最近,我添加了 Why-did-you-render 插件,以更深入地了解可能会减慢页面速度的因素。例如,我注意到,当我单击一个复选框组件时,所有其他组件都会重新渲染。理由总是一样的。WDYR 说

\n\n
\n

由于道具更改而重新渲染:\n 具有相同名称的不同函数 {prev onChangeHandler: \xc6\x92} "!==" {next onChangeHandler: \xc6\x92}

\n
\n\n

我尽可能地尊重我发现的最佳实践指示。我的组件传递的回调函数遵循此模式

\n\n
import React, { useState, useEffect } from \'react\';\nimport { useTranslation } from \'react-i18next\';\nexport function TopLevelComponent({props}){\n\n    const defaultData = {name: \'\', useMale: false, useFemale: false}\n\n    const [data, setData] = useState(defData);\n    const { t } = useTranslation();\n    const updateState = (_attr, _val) => {\n        const update = {};\n        update[_attr] = _val;\n        setData({ ...data, ...update });\n    }\n\n    const updateName = (_v) => updateState(\'name\', _v);//Text …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

调用已定义的函数时,在QT Creator中获取“未定义的引用”

因此,我正在读这本书:Jasmin Blanchette撰写的《使用Qt 4进行C ++ GUI编程》,第二版;Mark Summerfield,以学习GUI编程。并且,在按照本书的步骤创建一个简单的电子表格应用程序时,当我尝试编译电子表格小部件时,出现“未定义的引用”错误。

所有错误似乎都源于该Cell *Spreadsheet::cell(int row, int column)函数:

Cell *Spreadsheet::cell(int row, int column) const
{
    return static_cast<Cell *>(item(row, column));
}
Run Code Online (Sandbox Code Playgroud)

这是电子表格中抱怨的第一个功能

QString Spreadsheet::formula(int row, int column) const {
    Cell *c = cell(row, column);
    if (c) {
        return c->formula();
    } else {
        return "";
    }
}
Run Code Online (Sandbox Code Playgroud)

该行Cell *c = cell(row, column);发送错误的位置:/home/axel/QtSDK/Code/Spreadsheet/spreadsheet.cpp:-1:错误:未定义对Cell :: Cell()的引用

这总是在cell(row, column)被调用的地方发生。该函数本身在专用部分的spreadhseet标头中定义为:Cell *cell(int row, int column) const;

抱歉,如果看起来很混乱,我对C ++编程有点陌生。

这是我的.pro文件

TEMPLATE = app
CONFIG += console
CONFIG += …
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

C++ 将成员函数传递给另一个类

我正在尝试在 C++ 中进行简单的回调,但是我在按照我的意愿进行操作时遇到了问题。

基本上我想要这样的东西:

class A{
   void A::AddCallback(void (*callBackFunction)(string)){
      /*Code goes here*/
   }
}
Run Code Online (Sandbox Code Playgroud)

和B级

#include "A.h"
class B{
   B::B(){
      A childObject;
      childObject(MyCallBackFunction);   
   }
   B::MyCallBackFunction(string arg){
      /*Code goes here*/
   }
}
Run Code Online (Sandbox Code Playgroud)

我知道通常你会想AddCallback用类似的东西定义标题,B::callBackFunction但我确实需要导入AB所以让两个类相互导入会很尴尬。我知道我以前见过这个,但我无法正确理解语法

c++

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

静态QStringList的未定义引用

所以,我想在我的电子表格应用程序的"文件菜单"中创建一个"最近的文件"部分.在构建应用程序时,应该更新recentFileActions QStringList的函数会生成以下错误/home/axel/QtSDK/Code/QMainWindow/mainwindow.cpp:-1: error: undefined reference to 'MainWindow::recentFiles'

所以从我得到的错误recentFiles中没有定义?因为我在标题的私有部分中有这个:QStringList static recentFiles;

这是整个updateRecentFileActions()功能:

void MainWindow::updateRecentFileActions(){
  QMutableStringListIterator i(recentFiles);
  while (i.hasNext()) {
    if (!QFile::exists(i.next()))
        i.remove();
  }

  for (int j = 0; j < MaxRecentFiles; ++j) {
    if (j < recentFiles.count()) {
        QString text = tr("&%1 %2")
        .arg(j + 1)
        .arg(strippedName(recentFiles[j]));
        recentFileActions[j]->setText(text);
        recentFileActions[j]->setData(recentFiles[j]);
        recentFileActions[j]->setVisible(true);
    } else {
        recentFileActions[j]->setVisible(false);
    }
  }
  separatorAction->setVisible(!recentFiles.isEmpty());
}
Run Code Online (Sandbox Code Playgroud)

我会添加任何遗漏的信息.

谢谢.

c++ linux qt

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

Azure 空间锚点集成问题。缺少 NativeLibrary 实现

我一直在修改 Azure 的空间锚点 API。我按照 Microsoft 提供的文档和示例进行操作,没有遇到很多问题,直到我尝试从中创建自己的项目。当我尝试使用空间锚点 API 运行自定义项目时,它会崩溃,寻找 gradle 中指定的库应提供的一些函数。错误日志是这样说的:

2019-05-28 10:32:10.642 28982-28982/com.azurelib.azureanchorsclean E/AndroidRuntime:致命异常:主进程:com.azurelib.azureanchorsclean,PID:28982 java.lang.UnsatisfiedLinkError:未找到 com 的实现。 microsoft.azure.spatialanchors.status com.microsoft.azure.spatialanchors.NativeLibrary.ssc_cloud_spatial_anchor_session_create(com.microsoft.azure.spatialanchors.Out)(尝试过Java_com_microsoft_azure_spatialanchors_NativeLibrary_ssc_1cloud_1spatial_1anchor_1session_1create和Java_com_microsoft_azure_sp atialanchors_NativeLibrary_ssc_1cloud_1spatial_1anchor_1session_1create__Lcom_microsoft_azure_spatialanchors_Out_2)位于com.microsoft.azure.spatialanchors.NativeLibrary.ssc_cloud_spatial_anchor_session_create(本机方法) ...

相关的 ssc_cloud... 函数可以在 gradle 构建中指定的 Spatialanchors_java 依赖项中找到:在此输入图像描述

对于云会话,我在 MainActivity 中启动一个新活动onResume()

@Override
protected void onResume(){
    super.onResume();
    Intent intent = new Intent(this, AzureSpatialAnchorsActivity.class);
    intent.putExtra("BasicDemo", true);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

然后AzureSpatialAnchorsActivity我创建ArCore Session并启动锚点管理器:

@Override
protected void onResume(){
    super.onResume();
    Intent intent = new Intent(this, AzureSpatialAnchorsActivity.class);
    intent.putExtra("BasicDemo", true);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

发生错误是因为当我尝试创建一个CloudSpatialAnchorSession对象时

    @Override
    protected void onResume() {
        super.onResume();

        if (session …
Run Code Online (Sandbox Code Playgroud)

android azure azure-spatial-anchors

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

标签 统计

c++ ×3

qt ×2

android ×1

azure ×1

azure-spatial-anchors ×1

javascript ×1

linux ×1

reactjs ×1