小编Smi*_*yne的帖子

反应警告:无法从不同组件的函数体内部更新组件

我在 React 中将 Redux 与类组件一起使用。在 Redux 商店中具有以下两种状态。

{ spinner: false, refresh: false }
Run Code Online (Sandbox Code Playgroud)

在父组件中,我有一个调度函数来改变这个状态。

class App extends React.Component {
  reloadHandler = () => {
    console.log("[App] reloadComponent");

    this.props.onShowSpinner();
    this.props.onRefresh();
  };

  render() {
    return <Child reloadApp={this.reloadHandler} />;
  }
}
Run Code Online (Sandbox Code Playgroud)

在子组件中,我试图重新加载父组件,如下所示。

class Child extends React.Component {
  static getDerivedStateFromProps(props, state) {
    if (somecondition) {
      // doing some redux store update
      props.reloadApp();
    }
  }

  render() {
    return <button />;
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到如下错误。

警告:无法从不同组件的函数体内部更新组件。

如何消除此警告?我在这里做错了什么?

javascript reactjs redux

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

jstring在JNI程序中返回

这是JNI代码.

Java代码:

public class Sample1 {

    public native String stringMethod(String text);

    public static void main(String[] args)
    {
       System.loadLibrary("Sample1");
       Sample1 sample = new Sample1();

       String  text   = sample.stringMethod("world");

       System.out.println("stringMethod: " + text);    
   }
}
Run Code Online (Sandbox Code Playgroud)

stringMethod函数的Cpp方法:

JNIEXPORT jstring JNICALL Java_Sample1_stringMethod
   (JNIEnv *env, jobject obj, jstring string) {

 const char *name = env->GetStringUTFChars(string, NULL);//Java String to C Style string
 char msg[60] = "Hello ";
 jstring result;

 strcat(msg, name);
 env->ReleaseStringUTFChars(string, name);
 puts(msg);
 result = env->NewStringUTF(msg); // C style string to Java String
 return result; …
Run Code Online (Sandbox Code Playgroud)

string java-native-interface return

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

即使python执行程序成功导入它,vscode中的pylint导入错误

我正在使用 vscode 来编码我的 python 代码。我在我的代码中使用了 pandas、numpy 和 requests 库。如果我运行代码,它工作正常。但是在 VScode 编辑器中,在问题部分,它总是说消息为

Unable to import 'numpy' (pylint import error)
Unable to import 'pandas' (pylint import error)
Unable to import 'requests' (pylint import error)
Run Code Online (Sandbox Code Playgroud)

我在 StackOverflow 问题中搜索了这个问题的答案,它说pandas使用pip. 我也是这样做的。但我仍然面临同样的问题。如何在 vs 代码编辑器中解决此问题

python pylint visual-studio-code

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

未初始化的值由堆栈分配创建

我使用Valgrind工具调试了我的代码.它在此功能中显示此错误.我在下面给出了错误和我的功能.我不知道这里有什么问题?我怎样才能纠正它?我的错误是.

未初始化的值是由0x80996D7处的堆栈分配创建的:cdtojd(std :: string const&)

我的代码是.

double cdtojd(const string &cdate);

double cdtojd(const string &cdate)
{
    int dd,mm,yy;
    int y,m;
    double jd=0;

    //mm = atoi(cdate.substr(0,2).c_str());
    //dd = atoi(cdate.substr(2,2).c_str());
    //yy = atoi(cdate.substr(4,4).c_str());

    sscanf(cdate.c_str(),"%2d%2d%4d",&mm,&dd,&yy);

    //cout<<mm<<"..."<<dd<<"...."<<yy<<endl;

    y = (yy - 1900) * 372;

    m = (mm-1) * 31;

    jd = dd + m + y;

    return jd;
}
Run Code Online (Sandbox Code Playgroud)

c++ valgrind

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

16位数据类型范围内的混淆

在16位C编译器中,我们有2个字节来存储整数,1个字节用于字符.对于无符号整数,范围是0到65535.对于有符号整数,范围是-32768到32767.对于无符号字符,0到255.根据整数类型,有符号字符范围不应该像-128到127.但是为什么-127到127?剩下的一点怎么样?

c int primitive range char

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

Git 每日自动提交

我可以通过日常例行在目录中提交我的更改吗?比如说,在每早 12 点的凌晨,它应该自动提交该目录中的所有更改吗?在git中有可能吗?对于每次更改,我都会得到一些自动提交的答案。但我希望它每天提交一次。

linux git git-commit

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

将制表符分隔文件读取到C中的结构

我有一个带制表符分隔数据的文件.我想把每一行都读成一个结构.我有一个代码来读取数据到char缓冲区.但我想将数据加载到Structure中.

这是我的样本数据.

empname1\T001\T35\tcity1

empname2\T002\T35\tcity2

我的结构定义.

struct employee
{
  char *empname;
  char *empid;
  int age;
  char *addr;

};
Run Code Online (Sandbox Code Playgroud)

我的示例程序将数据读取到char数组中buffer

char buffer[BUF_SIZE];      /* Character buffer */
    input_fd = open (fSource, O_RDONLY);
    if (input_fd == -1) {
       perror ("open");
        return 2;
    }

    while((ret_in = read (input_fd, &buffer, BUF_SIZE)) > 0){

         // Do Some Process 
    }
Run Code Online (Sandbox Code Playgroud)

在这里,我想将内容加载到结构变量而不是字符缓冲区.我怎么能做到这一点?

c struct file input tab-delimited-text

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

插入矢量项目进行设置

我想在c ++中将vector字符串项插入字符串set.如果向量的项包含'+',则应将其添加到一个集合中,否则应将其添加到另一个集合中.我可以通过逐个迭代矢量来做到这一点.不过,我会受到"做callback"功能" insert"的'功能set"?

struct compare {
    bool operator() (const std::string& str) const{
        if(str.find("+") != std::string::npos) {
            return false;
        return true;
    }
};
std::vector strlist = {"apple","+apple","banana","orange","+graphes"};
std::set<std::string,compare> set1,set2;
set1.insert(strlist.begin(),strlist.end(),compare);
Run Code Online (Sandbox Code Playgroud)

我想创建一个set1包含项目的列表,

apple,
banana,
orange
Run Code Online (Sandbox Code Playgroud)

set2项目,

+apple
+graphes
Run Code Online (Sandbox Code Playgroud)

c++ stl vector set

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

使用sed删除文件的所有内容

我想使用sed命令清空文件.我搜索了很多论坛和教程.没有可删除文件的所有内容.如何使用sed命令删除文件的所有内容.

unix sed empty-list

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

多重定义错误c ++

我的'Headers.h'文件包含基本的c ++标题

#include <iostream>
#include <cstring>
// and many header files.
Run Code Online (Sandbox Code Playgroud)

为文件存在检查写了一个函数定义并将其保存在'common_utility.h'中 - ifFileExist()

common_utility.h

bool ifFileExist()
{
   // ... My code
}
Run Code Online (Sandbox Code Playgroud)

为A类classA.h写了代码

class A
{
// Contains class A Declarations.

};
Run Code Online (Sandbox Code Playgroud)

classA.cpp

// Contains
#include "Headers.h"
#include "common_utility.h"
#include "classA.h"

// class A Method definition
Run Code Online (Sandbox Code Playgroud)

为B类写了代码我在B组使用A类.

classB.h

 class B
    {
// Contains class A Declarations.
}
Run Code Online (Sandbox Code Playgroud)

classB.cpp

// Contains
#include "Headers.h"
#include "common_utility.h"
#include "classA.h"
#include "classB.h"

// class B Method definition
// calling the function ifFileExist() in …
Run Code Online (Sandbox Code Playgroud)

c++ header-files multiple-definition-error

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