我正在使用最新版本react-router(版本^ 3.0.0).
我使用ES5编写了以下路由:
routes.js:
var React = require("react");
var Router = require("react-router");
var AuthorPage = require('./components/authors/authorPage')
var App = require('./components/app')
var Route = Router.Route;
var routes = (
<Route path="/" component={App}>
<Route path="authors" component={AuthorPage}/>
</Route>
);
module.exports = routes;
Run Code Online (Sandbox Code Playgroud)
在另一个名为main.jsI的JS文件中,执行以下调用:
main.js:
var React= require("react");
var ReactDom = require("react-dom");
var Router = require('react-router').Router;
var routes = require('./routes');
ReactDom.render(<Router routes={routes}></Router>, document.getElementById('app'));
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我在Google Chrome开发人员工具中遇到以下异常:
未捕获的TypeError:无法读取未定义的属性'getCurrentLocation'
这是为什么?我错过了什么?
我在社区和外面阅读了一些关于嵌套类的帖子,我很困惑.
据我所知,在C++中,嵌套类与单独/独立类没有任何不同.
当我试图更好地理解conecpt时,我编写了一个简单的代码,我发现内部类可以访问外部类而不需要从外部类中获得友谊.
例如:
class Outer {
private : // default access modifier
int x;
static int sx;
public:
class Inner {
public:
void changeOuterDataMemberValues(int value) {
sx = value; // changes the private static data member of Outer.
Outer out;
out.x = value; // changes the private data member via object (not via class!)
}
void printMyOuterDataMember() {
cout << sx; // prints the private data member of Outer.
}
};
};
class Lonesome { …Run Code Online (Sandbox Code Playgroud) 我对这些东西很新,我需要你的帮助.
我应该构建一个有效的简单算法,它在大小为n的数组中返回最大值,其中包含带重复的数字1,2,... n.
然后我必须确定最佳运行时间,平均运行时间和最差运行时间.
所以我有两个问题:
首先,我试图了解为这个简单的算法要求有效解决方案的想法.据我所知,我应该只有一个从1到n的简单循环,并寻找最大值."高效"算法是否指出如果我在数组中找到值n,我可以停止搜索更多值,因为这是数组中的最大值?
在计算平均运行时间时,如何确定最佳运行时间和平均运行时间,即均匀分布.也就是说,阵列中的每个单元都有1/n的概率为最大值.
非常感谢提前!
我还有一个问题,希望能够总结我的想法.
假设我有以下3个类:
班级球员:
class Player {
private:
int positionX, positionY;
public:
void move(Board& b) {
// player changes its position on the board(move)
b.removeCharFromBoard(positionX, positionY);
positionX++;
positionY++;
// 'P' indicates a Player in the Board....
b.insertCharToBoard(positionX, positionY, 'P');
}
};
Run Code Online (Sandbox Code Playgroud)
班主任:
class Board {
private:
// BOARD_C and BOARD_R are both "#define ..." for some integer number.
char board[BOARD_C][BOARD_R];
};
Run Code Online (Sandbox Code Playgroud)
class GameEngine:
class GameEngine {
private:
Board* board;
public:
void playTurn(const Player& p) {
p.move(board);
}
};
Run Code Online (Sandbox Code Playgroud)
你认为GameBoard的playTurn函数会用参数"board"调用Player的移动功能似乎是合理的吗?我需要这样做才能在棋盘数据成员中标记玩家已经改变了他的位置.它是否遵守OOP基本规则?
谢谢大家,辛迪加!
可能的重复:
为什么类的大小仅取决于数据成员而不取决于成员函数?
当我第一次学习继承时,我的老师说,与数据成员相反,成员函数不会改变类的大小。也就是说,如果类B继承自类A,当且仅当添加至少一个数据成员时,B的大小将大于A的大小,并且不会改变函数成员的数量。这是对的吗?如果是这样,这个机制是如何运作的?似乎两个成员都应该保存在堆中,因此会增加大小。
谢谢你,盖伊
可能重复:
C++中的对象销毁
假设我们有两个类,一个被调用Array,另一个被调用MessageOnExit.
假设Array该类有一个名为的静态数据成员counter.
以下是课程:
class Array {
public:
static int counter;
Array(){counter++;}
~Array(){counter--;}
};
class MessageOnExit {
public:
~MessageOnExit(){cout << Array::counter;}
};
Run Code Online (Sandbox Code Playgroud)
以下是使用这些类的"主要":
// static variable definition
int Array::counter;
// global object definition
MessageOnExit message;
void main() {
Array a1, a2;
Array a3(a1);
}
Run Code Online (Sandbox Code Playgroud)
前两个声明将更改为counter2,然后两次调用Empty/Default构造函数.第三个声明不会更改,counter因为将调用Default复制构造函数.
现在main执行完成后,静态成员的值counter将-1随后是析构函数调用(在a1,a2和a3被去除后),然后message将调用析构函数,打印此值(-1).
我的问题是counter,当message调用析构函数时,我们如何知道静态成员仍然存在且可用.
此外,如果我更改静态/全局对象/变量定义顺序,即message之前定义counter …
据我所知,在 XV6 中,PHYSTOP 应该是 1GB。
如果是这样,PHYSTOP 应该是 0x40000000 (1GB) 而不是 0xE000000 (224MB),如http://pdos.csail.mit.edu/6.828/2014/xv6/xv6-rev8.pdf 中所示:
0203 #define PHYSTOP 0xE000000 // Top physical memory
Run Code Online (Sandbox Code Playgroud)
此外,在 XV6 中,进程可能会从 0 映射到 0x80000000(KERNBASE)。也就是说,一个进程可能使用 2GB 的地址空间。如果 PHYSTOP 不是 2GB,怎么可能?
我错过了什么?
我已经了解了水合物和渲染之间的差异以及 renderToNodeStream 和 renderToString 之间的差异,然后我尝试创建一个示例项目来演示差异。从我所做的所有测试中,我找不到这些新函数之间的行为有任何差异。
例如,我创建了一个简单的 Hello World 程序,其中“World”是我的 App 组件的参数,我的 server.js 和 browser.js 都使用共享的 App 组件来设置参数(在服务器中参数值设置为“World”并在浏览器中将参数值设置为“Me”)。正如我所期望的,当我使用 browser.js 中的 Hydro 函数运行应用程序时,它应该忽略差异,因为据我了解 Hydrate 不应该更改组件值,而只添加事件侦听器。但是当我运行应用程序时,我看到Hello World,几毫秒后它变成Hello Me(这是我期望渲染而不是水合)。
我还尝试通过创建一个示例应用程序来测试新的 renderToNodeStream 函数,其中来自服务器的数据传输缓慢。我希望我的应用程序在服务器将数据块传输到客户端时运行,但它似乎与 renderToString 完全一样工作(所有组件字符串同时出现)。
有人可以帮助我并解释我做错了什么吗?
关于c ++模板机制的一个小问题.假设我们有一个名为Point的类.现在假设"Data"是模板类/容器,仅包含T(模板)数据成员.也就是说,"数据"看起来或多或少是这样的:
Template <class T>
class Data {
T dMember;
……..
};
Run Code Online (Sandbox Code Playgroud)
现在假设有人在main.cpp文件中使用此类并执行以下声明:
Data<Data<Point>> d;
Run Code Online (Sandbox Code Playgroud)
我试图完全理解对象的创建方式.我试图使用编译器进入课堂电话,但无济于事.我知道数据需要初始化数据,所以它自己调用一次,但它真正做到了什么?是否有激活构造函数?
谢谢,盖伊
我试图了解什么是unix命令!$.
例如,我知道该命令!1用于运行历史命令编号1.
它似乎!$运行在bash中键入的最后一个命令.
例如,如果我写mv folder12 folder123,然后我会写,cd !$我会实际上预先形成cd folder123.
!$运行在bash中输入的最后一个命令是否正确?
假设我有一个 lambda 函数,并且作为事件参数,我得到了大约 50 个主 id,我必须在 dynamodb 表中查找它们,那么更好的方法是什么 - 50 个查询,每个查询由不同的主 id 或一次扫描然后将扫描主 ID 结果与作为参数接收的主 ID 进行比较?
我认为 50 个 get 查询在性能方面会更好,因为如果明天我将有 100 万条记录,那么扫描所有记录然后仅过滤其中的 50 条将浪费时间和内存,但另一方面却不会对 dynamodb 的 50 个请求可能会出现性能问题并需要更多配置?
capacity amazon-web-services throughput amazon-dynamodb aws-lambda
在bash中输入“ vi [FILENAME]”后,得到以下结果:
.... \r\"gu1.txt\" 16L, 87C ESC[>cESC[1;1H 111\r\n1112.....
该行中标记的第一个文本是文件名称,紧随vi结果的行数和列数。
第二课包含两个我不理解它们含义的转义序列:ESC[>c和ESC[1;1H。
最后的文本包括作为vi结果显示的文本,即文件的内容。
您能否解释一下ANSI转义码序列是什么ESC[>c,以及它与紧随其后的转义码序列之间的关系ESC[1;1H?
提前致谢
c++ ×5
bash ×2
reactjs ×2
unix ×2
algorithm ×1
ansi-escape ×1
aws-lambda ×1
browserify ×1
c ×1
capacity ×1
command-line ×1
javascript ×1
linux ×1
react-router ×1
shell ×1
templates ×1
terminal ×1
throughput ×1
xv6 ×1