据我所知,我必须在行动创建中写入请求.如何使用承诺提交请求?我正在获取数据.然后在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) 我遇到了这个问题,我不知道如何解决它.我在页面中使用了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)
如果不是这样,是否有其他选项/选择我可以使用哪些不会延迟显示选择选项?
我遇到了以下情况,无法找出解决方案,我是 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 的值。
提前致谢
我正在为使用 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”
我关注了很多线程,但找不到解决方案。为什么我收到这个错误?
我遇到了这个问题,我无法找出原因,也无法在谷歌上找到任何解释.我有一个$ 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)
你能告诉我怎么解决这个问题吗?
对于一个特定的问题,我必须从用户那里获取大小介于其间的字符串输入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",这完全没问题.但我不明白为什么.使用第一个代码的原因是由于内存分配只进行一次,因此节省了时间.我错了吗?请解释.
我有以下文件 - 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",那么它正在运行并提供输出.你能解释一下我收到这个错误的原因吗?