小编4m1*_*m1r的帖子

React-Router:没有找到路由?

考虑以下:

var AppRoutes = [
    <Route handler={App} someProp="defaultProp">
        <Route path="/" handler={Page} />
    </Route>,

    <Route  handler={App} someProp="defaultProp">
        <Route path="/" handler={Header} >
            <Route path="/withheader" handler={Page} />
        </Route>
    </Route>,

    <Route handler={App} someProp="defaultProp">
        <Route path=":area" handler={Area} />
        <Route path=":area/:city" handler={Area} />
        <Route path=":area/:city/:locale" handler={Area} />
        <Route path=":area/:city/:locale/:type" handler={Area} />
    </Route>
];
Run Code Online (Sandbox Code Playgroud)

我有一个App Template,一个HeaderTemplate和一个具有相同处理程序的参数化路由集(在App模板中).我希望能够在找不到东西时提供404路线.例如,/ CA/SanFrancisco应该由Area找到并处理,而/ SanFranciscoz应该是404.

这是我如何快速测试路线.

['', '/', '/withheader', '/SanFranciscoz', '/ca', '/CA', '/CA/SanFrancisco', '/CA/SanFrancisco/LowerHaight', '/CA/SanFrancisco/LowerHaight/condo'].forEach(function(path){
    Router.run(AppRoutes, path, function(Handler, state){
        var output = React.renderToString(<Handler/>);
        console.log(output, '\n');
    });
});
Run Code Online (Sandbox Code Playgroud)

问题是/ SanFranciscoz总是由Area页面处理,但我希望它为404.另外,如果我将NotFoundRoute添加到第一个路由配置,所有Area页面404.

<Route handler={App} someProp="defaultProp">
    <Route path="/" …
Run Code Online (Sandbox Code Playgroud)

react-router

109
推荐指数
9
解决办法
11万
查看次数

什么时候应该在酶/反应测试中使用渲染和浅?

在发布这个问题之前,我试图在sqa stackexchange中搜索,但我发现没有关于浅的帖子并在那里渲染,所以我希望有人可以帮助我.

什么时候我应该使用浅和渲染测试反应组件?根据airbnb文档,我对两者的区别提出了一些看法:

  1. 由于浅层是将组件作为一个单元进行测试,因此它应该用于"父"组件.(例如桌子,包装等)

  2. 渲染用于子组件.

我问这个问题的原因是,我很难弄清楚应该使用哪一个(尽管文档说他们非常相似)

那么,我如何知道在特定场景中使用哪一个?

testing meteor chai reactjs enzyme

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

在Javascript中进行二进制搜索

我正在尝试在JavaScript中实现二进制搜索算法.事情似乎没问题,但我的回复陈述似乎是未定义的回归?谁能说出这里有什么问题?

小提琴:http://jsfiddle.net/2mBdL/

谢谢.

var a = [
    1,
    2,
    4,
    6,
    1,
    100,
    0,
    10000,
    3
];

a.sort(function (a, b) {
    return a - b;
});

console.log('a,', a);

function binarySearch(arr, i) {
    var mid = Math.floor(arr.length / 2);
    console.log(arr[mid], i);

    if (arr[mid] === i) {
        console.log('match', arr[mid], i);
        return arr[mid];
    } else if (arr[mid] < i && arr.length > 1) {
        console.log('mid lower', arr[mid], i);
        binarySearch(arr.splice(mid, Number.MAX_VALUE), i);
    } else if (arr[mid] > i && arr.length > …
Run Code Online (Sandbox Code Playgroud)

javascript binary-search

34
推荐指数
7
解决办法
6万
查看次数

有没有办法发现ReST API的所有端点?

我想知道是否有可能以编程方式发现特定API的所有端点.

例如,如果我使用浏览器或卷曲获取此URL:https: //api.twitter.com/1.1/

我可能会得到类似这样的JSON响应:

{"TwitterAPI":{
    "version" : 1.1,
    "GET" : {
        "search/" : ["users", "trending"],
        "users/" : ["id", "handle"]
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,Twitter可以选择发布或不发布此格式.所以作为一个附带问题,是否有任何Java或Javascript库可以自动映射和发布您在控制器中创建的API路由?

javascript java curl http facebook-graph-api

32
推荐指数
3
解决办法
5万
查看次数

使用Node.js进行require.extensions的更好方法

我正在测试一堆React JSX组件.它们都需要用React或Babel或其他任何东西来编译,但是我们对存根需求有特殊需求,所以我试图用一个用Mocha运行的特殊编译器来覆盖需求.下面的解决方案运行良好,但您会注意到我们正在使用require.extensions []来捕获所有.jsx文件.我担心的是require.extensions被锁定和弃用.有没有更好的方法来做到这一点?

// Install the compiler.
require.extensions['.jsx'] = function(module, filename) {
    return module._compile(transform(filename), filename);
};
Run Code Online (Sandbox Code Playgroud)

以下是整个转录器供参考:

// Based on https://github.com/Khan/react-components/blob/master/test/compiler.js
var fs = require('fs'),
    ReactTools = require('react-tools');

// A module that exports a single, stubbed-out React Component.
var reactStub = 'module.exports = require("react").createClass({render:function(){return null;}});';

// Should this file be stubbed out for testing?
function shouldStub(filename) {
    if (!global.reactModulesToStub) return false;

    // Check if the file name ends with any stub path.
    var stubs = global.reactModulesToStub;

    for (var i = …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js reactjs

20
推荐指数
3
解决办法
5969
查看次数

React.Component.defaultProps对象被覆盖,没有合并?

我正在尝试使用对象文字设置defaultProp,但过了一段时间后我意识到React类构造函数没有将默认道具与应用的道具合并,所以我最终得到了defaultProps文字中任何属性的未定义值没有被包括在应用道具中.有没有办法合并默认道具和应用道具,还是我需要将我的对象分解成几个道具?

class Test extends React.Component {
  constructor(props) {
    super(props);

    //props.test is only {one: false}
    //props.test.two is undefined

  }
  render() {
    return (<div>render</div>)
  }
}

Test.defaultProps = {
  test:  {
    one: true,
    two: true
  }
}


ReactDOM.render(<Test test={{'one': false}}/>, document.getElementById('#test'));
Run Code Online (Sandbox Code Playgroud)

http://codepen.io/adjavaherian/pen/oYNPLz

ecmascript-6 reactjs

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

在UISearchController文本字段中键入时,导航栏消失

当我开始在UISearchController.searchBar中输入时,我试图找出为什么我的整个导航栏消失了它正确加载并动画正确,但是当我开始输入时我失去了活动的NavBar.这是从viewDidLoad加载searchController的代码:

    UITableViewController *searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];

    searchResultsController.tableView.dataSource = self;
    searchResultsController.tableView.delegate = self;
    searchResultsController.tableView.backgroundColor = [UIColor redColor];    

    self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
    self.searchController.delegate = self;
    self.searchController.searchResultsUpdater = self;
    self.searchController.dimsBackgroundDuringPresentation = YES;
    self.searchController.hidesNavigationBarDuringPresentation = NO;

    [self.searchController.searchBar sizeToFit];

    self.tableView.tableHeaderView = self.searchController.searchBar;
    self.definesPresentationContext = NO;
Run Code Online (Sandbox Code Playgroud)

这是我开始输入后的结果:

在此输入图像描述

注意表格视图是如何存在的,但它似乎占据了导航控制器的空间并向下延伸到第一部分标题中.有任何想法吗?

谢谢.

uinavigationbar uitableview ios8 uisearchcontroller

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

避免多次调用任务完成回调?

鉴于以下gulp任务,我能够成功启动gulp,webpack和nodemon进程,但webpack任务是开放式的,因此当他们的监视/编译周期完成时,他们将继续触发完成处理程序.

服务器任务取决于客户端任务输出,所以我需要这些操作是同步的,因此 done

function onBuild(done) {
    return function(err, stats) {
        if(err) {
            gutil.log('Error', err);
            if(done) {
                done();
            }
        } else {
            Object.keys(stats.compilation.assets).forEach(function(key){
                gutil.log('Webpack: output ', gutil.colors.green(key));
            });
            gutil.log('Webpack: ', gutil.colors.blue('finished ', stats.compilation.name));
            if(done) {
                done();
            }
        }
    }
}

//dev watch
gulp.task('webpack-client-watch', function(done) {
    webpack(devConfig[0]).watch(100, function(err, stats) {
        onBuild(done)(err, stats);
    });
});

gulp.task('webpack-server-watch', function(done) {
    webpack(devConfig[1]).watch(100, function(err, stats) {
        onBuild(done)(err, stats);
        nodemon.restart();
    });
});

gulp.task('webpack-watch',function(callback) {
    runSequence(
        'webpack-client-watch',
        'webpack-server-watch',
        callback
    );
});

gulp.task('nodemon', ['webpack-watch'], function() {
    nodemon({
        script: path.join('server/dist/index.js'),
        //ignore …
Run Code Online (Sandbox Code Playgroud)

node.js gulp webpack

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

将 ENV 变量从一个 Tekton Task 步骤传递到下一个步骤?

因此,Tekton Pipelines允许您创建单独的任务并将它们连接到云原生 ci/cd 管道中。它太酷了。但正如你所想象的那样,你认为很简单的事情其实很棘手。例如,我试图将 Kaniko 执行程序作为任务运行,但该执行程序需要特定参数。我可以对这些 args 进行硬编码,但这会降低任务的可重用性,因此我希望之前的任务只是从源和输出读取配置文件,或者为后续任务设置 env 变量。不知道如何做到这一点。就 Kaniko 而言,它真的很棘手,因为您没有任何外壳或任何东西。有什么建议?

这是他们文档中的一个示例任务,我对其进行了调整以显示我正在尝试做的事情。

apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
  name: example-task-name
spec:
  inputs:
    resources:
      - name: workspace
        type: git
    params:
      - name: pathToDockerFile
        type: string
        description: The path to the dockerfile to build
        default: /workspace/workspace/Dockerfile
  outputs:
    resources:
      - name: builtImage
        type: image
  steps:
    - name: ubuntu-example
      image: ubuntu
      args: "export FOO=bar"
    - image: gcr.io/example-builders/build-example
      command: ["echo $FOO"]
Run Code Online (Sandbox Code Playgroud)

tekton tekton-pipelines

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

SQLite,按行索引选择一行,而不是id

我有一个 100K 行的 sqlite 数据库。但是,随着时间的推移,其中一些行已被删除,因此主键不再是连续的。现在,它们的顺序是 3,5,6,9,900,n...

问题是我想将这些放在 UITableView 中,cellForIndexRowAtIndexPath 为 0,1,2,3 等。有没有办法我可以做类似的事情

SELECT * FROM table WHERE id =  0;
Run Code Online (Sandbox Code Playgroud)

但我想选择 0 处的索引位置,而不是 id = 0;

SELECT * FROM table where table._table_index = 0; //don't try this at home
Run Code Online (Sandbox Code Playgroud)

谢谢!

sqlite

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

在 Helm 模板中解压 Go 地图值

我似乎无法找到一个简单有效的解决方案来解决我在 Go 模板/Helm 中经常出现的问题。基本上,给定一个 values.yaml 如下:

ingress:
  hosts:
  - host: busy-a.local
    paths:
    - backend:
        serviceName:busy-a
        servicePort: 80
      path: /busy/[A-Z0-9]{1}
Run Code Online (Sandbox Code Playgroud)

和这样的模板/ingress.yaml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {{.Values.project}}-ingress
  annotations:
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
  {{- range .Values.ingress.hosts }}
    - host: {{ .host | quote }}
      http:
        paths:
        {{- range .paths }}
          - path: {{ .path }}
            backend:
              serviceName: {{ .backend.serviceName }} # this works
              servicePort: {{ .backend.servicePort }} # but can we shorthand backend?
        {{- end }}
  {{- end }}
Run Code Online (Sandbox Code Playgroud)

但是,那岂不是更容易“解包”中backend …

go go-templates kubernetes-helm

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

使用jQuery获取嵌套数据属性

http://api.jquery.com/data/

我试图用数据方法做这样的事情:

$("body").data("bar", { myType: "test", count: 40 });
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法像这样设置"计数":

$("body").data(bar["count"], 41); 
Run Code Online (Sandbox Code Playgroud)

我的语法错了吗?

jquery html5

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