小编aka*_*jkn的帖子

如何在redux中发出AJAX请求

据我所知,我必须在行动创建中写入请求.如何使用承诺提交请求?我正在获取数据.然后在reducer中创建新状态.在连接中绑定动作和减速器.但我不知道如何使用承诺请求.

行动

import $ from 'jquery';
export const GET_BOOK = 'GET_BOOK';

export default function getBook() {
  return {
    type: GET_BOOK,
    data: $.ajax({
      method: "GET",
      url: "/api/data",
      dataType: "json"
    }).success(function(data){
      return data;
    })
  };
}
Run Code Online (Sandbox Code Playgroud)

减速器

import {GET_BOOK} from '../actions/books';

const booksReducer = (state = initialState, action) => {
  switch (action.type) {
    case GET_BOOK:
      return state;
    default:
      return state;
  }
};

export default booksReducer;
Run Code Online (Sandbox Code Playgroud)

容器 如何在容器中显示数据?

import React, { Component, PropTypes } from 'react';
import { connect } from 'react-redux';
import …
Run Code Online (Sandbox Code Playgroud)

ajax request reactjs redux

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

ui-select multiselect在显示选项时非常慢

我遇到了这个问题,我不知道如何解决它.我在页面中使用了ui-select multiselect.首先,对获取数据的url进行http.get请求,然后填充ui-select选项.数据很大 - 数据长度为2100.此数据将显示为选项.(数据在加载页面期间在开头提取并存储在数组中)

但问题是每次我点击多选项来选择一个选项,填充列表需要4-5秒,页面变得非常慢.我该怎么做才能减少这段时间?

选择数据存储在数组中,数据类型是字符串数组.

  <ui-select multiple ng-model="selectedFields.name"  style="width: 100%;">
    <ui-select-match placeholder="Select fields...">{{$item}}</ui-select-match>
    <ui-select-choices repeat="fields in availableFields | filter:$select.search">
      {{fields}}
    </ui-select-choices>
  </ui-select>
Run Code Online (Sandbox Code Playgroud)

在控制器中,

$scope.selectedFields = {};
$scope.selectedFields.name = [];

$scope.init = function() {

    $http.get(url)
        .success( function(response, status, headers, config) {
            availableFields = response;
        })
        .error( function(err) {
        });
};

$scope.init();
Run Code Online (Sandbox Code Playgroud)

如果不是这样,是否有其他选项/选择我可以使用哪些不会延迟显示选择选项?

angularjs angular-ui ui-select

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

解析标签javascript的html属性

我遇到了以下情况,无法找出解决方案,我是 javascript 新手,我尝试在互联网上搜索,但找不到可行的解决方案。1)我想获取查询的标签的属性。例如,如果我有一个如下标签

<a href = "pqr/dl/"> docName </a>
Run Code Online (Sandbox Code Playgroud)

如何获取href的值?通过做

el.getElementsByTagName("a")[0].childNodes[0].nodeValue
Run Code Online (Sandbox Code Playgroud)

通过这样做,我只能获取标签的值,即“docName”。

2)如何查询“img”标签?我有一个图像标签如下

<img src = "/icons/alpha.gif" alt="[DIR]">
Run Code Online (Sandbox Code Playgroud)

如果我做

console.log(el.getElementsByTagName("img")[0].childNodes[0].nodeValue)
Run Code Online (Sandbox Code Playgroud)

它在控制台上打印“null”。我需要 src 和 alt 的值。

提前致谢

html javascript parsing

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

getline() 在读取最后一行后抛出 basic_ios::clear 异常

我正在为使用 qtestlib、C++(clang LLVM 8.0 版)读取文件编写单元测试。我有以下代码用于逐行读取文件。

std::ifstream infile;

try {
    infile.open(path.c_str());
    std::ios_base::iostate exceptionMask = infile.exceptions() | std::ios::failbit;
    infile.exceptions(exceptionMask);

} catch (std::ios_base::failure& e) {
    // print the exception
    qDebug() << "Exception caught: " << QString::fromStdString(e.what());
}

try {
    std::string line;
    while (std::getline(infile, line)) {
        // print the line
        qDebug() << QString::fromStdString(line);
    }

} catch (std::ios_base::failure& e) {
    qDebug() << "Exception caught: " << QString::fromStdString(e.what());
}
Run Code Online (Sandbox Code Playgroud)

问题

上面的代码读取文件中的所有行并打印出来。但是在打印最后一行后,它抛出异常并打印以下内容,

捕获异常:“basic_ios::clear”

我关注了很多线程,但找不到解决方案。为什么我收到这个错误?

c++ qt exception-handling

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

仅在Google Chrome中,angularjs中的"排序不是函数"错误

我遇到了这个问题,我无法找出原因,也无法在谷歌上找到任何解释.我有一个$ http.get方法从URL中检索一些数据,成功后我正在排序响应.但是当我在谷歌浏览器上运行页面时,我收到错误"TypeError:response.sort不是一个函数"

var orderOfGroups = ["alpha", "beta", "gamma", "delta"];

$http.get(url)
.success( function (response, status, headers, config) {
    response.sort( function(a, b) {
        var aname = orderOfGroups.indexOf(a.team);
        var bname = orderOfGroups.indexOf(b.team);

        return bname-aname;
    });
});
Run Code Online (Sandbox Code Playgroud)

我在"response.sort"行收到错误.这也只发生在谷歌浏览器中,我在firefox和IE10中进行了测试,并且它在这些浏览器上运行良好.我收到的json数据(响应)具有以下格式

[
    {
        team: "gamma",
        value: "p"
    },
    {
        team: "alpha",
        value: "q"
    },
    ......
]
Run Code Online (Sandbox Code Playgroud)

你能告诉我怎么解决这个问题吗?

javascript sorting google-chrome angularjs

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

在C中输入大字符串

对于一个特定的问题,我必须从用户那里获取大小介于其间的字符串输入1 and 10^5.我使用了以下代码

char *a;
a = malloc(100000*sizeof(char));
Run Code Online (Sandbox Code Playgroud)

并且在循环内(t指的是测试用例的数量)

while( t-- )
{
  scanf( "%d", &n );
  scanf( "%s", a );
  .....
}
Run Code Online (Sandbox Code Playgroud)

n是用户在运行时输入的字符串的长度.问题是这给了我"超出时间限制"

我对上面的代码做了一些修改,

 while( t-- )
 {
   scanf( "%d", &n );
   char a[n];
   scanf( "%s", a );
   ....
 }
Run Code Online (Sandbox Code Playgroud)

没有"TLE",这完全没问题.但我不明白为什么.使用第一个代码的原因是由于内存分配只进行一次,因此节省了时间.我错了吗?请解释.

c string memory-management

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

从C文件调用C++函数会产生"未定义的引用"编译器错误

我有以下文件 - main.c,RULE_MINE.h和RULE_MINE.cpp

main.c中

#include "RULE_MINE.h"
int main()
{
  checker();
}
Run Code Online (Sandbox Code Playgroud)

RULE_MINE.h

#ifndef HEADER_FILE
#define HEADER_FILE

#ifdef __cplusplus

extern "C"
{

#endif

//declare functions here
  void checker();

#ifdef __cplusplus

}

#endif

#endif
Run Code Online (Sandbox Code Playgroud)

RULE_MINE.cpp

#include <bits/stdc++.h>
#include "RULE_MINE.h"

using namespace std;

void checker()
{
  cout<<"whaaat?"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我正在编译以下方式

$ g++ RULE_MINE.h
$ g++ -c RULE_MINE.cpp
$ g++ main.c
Run Code Online (Sandbox Code Playgroud)

为此,我收到编译器错误

main.c:(.text+0x1947): undefined reference to 'checker'
collect2: error: ld returned 1 exit
Run Code Online (Sandbox Code Playgroud)

我无法找到错误.但是假设我在main.c文件中包含#include"RULE_MINE.cpp",那么它正在运行并提供输出.你能解释一下我收到这个错误的原因吗?

c c++ c++11

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