小编Kob*_*bek的帖子

在React render()中调用map()函数内的函数

这是我之前的问题的一个跟进,但如果我在其中有一个映射,我如何在React的render()方法中调用一个函数.

示例(此代码位于扩展的类中React.Component):

getItemInfo(item){
  return `${item.Something} ${item.SomethingElse}`
}

render() {

return (
 <div className="someDiv">
    {
      collection.map(function (item) {
        return <div> {item.Name} {this.getItemInfo(item)} </div>
    })
  }
 </div>
);

}
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我总是得到"this.getItemInfo()不是一个函数".

我做了console.logthis我的内部map()功能,这是逸岸指的Window对象,但我似乎无法找到一种方法来改变这种状况.

我累了:

  • 定义getItemInfo为函数getItemInfo(){..}
  • this作为第二个参数传递给我的map函数
  • 调用this.getItemInfo = this.getItemInfo.bind(this)react的组件构造函数
  • 调用.bind(this)getItemInfo(item)

还有其他几件事......

没有用.我对JavaScript的this参考相当新,我似乎无法弄明白.

我在这里阅读了一些与使用内部相关的答案,render()但它们似乎都不适合我.

javascript dictionary this reactjs

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

.NET Core 2.x加载引用的程序集,在代码中没有类型引用

我有一个.NET Core 2.2项目A,该项目具有对程序集和.NET的程序包引用。(基本上是NuGet引用的dll)BC

我需要BC在运行时动态加载,但我似乎无法找到我怎么可能做到这一点的任何文档。

很多文章Assembly.Load()都提到了通过调用所有引用的程序集Assembly.GetExecutingAssembly().GetReferencedAssemblies(),但是这只会检索在执行程序集的代码中明确引用了某些类型的程序集。

这对我不起作用,因为在我的代码中我没有引用它们的类型。

我发现可以通过执行a获得完整的引用程序集列表Assembly.ReflectionOnlyLoad()但是.NET Core Runtime不支持此功能

我试图搜索AppDomainAssemblyLoadContext类,以查找此类信息,但找不到任何有用的信息。

综上所述,我的问题是如何动态加载程序集引用的程序集,而无需在代码中显式地触摸它们的某些类型

.net c# reflection dynamic .net-assembly

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

反应.创建一个返回html的函数

我最近开始使用react,我面临一些问题.

目前我有以下代码

<div className="col-md-4"><h4>ML</h4>
{
    game.lines.map(function (lineGroup) {
        return (
            <div className="row">
                <div className="col-md-1">
                    {lineGroup.Pay}
                </div>
                <div className="col-md-3">
                    <strong>{getLineInfo(lineGroup.HomeInfo)}</strong>
                </div>
                <div className="col-md-3">
                    <strong>{getLineInfo(lineGroup.Score)}</strong>
                </div>
                <div className="col-md-3">
                    <strong>{getLineInfo(lineGroup.AwayInfo)}</strong>
                </div>
            </div>
        )
    })
}
Run Code Online (Sandbox Code Playgroud)

这就在我的render()功能中.

但是,我将这段完全相同的代码复制/粘贴了5次,只做了很小的改动.我想把它提取到一个函数,但我不知道我该怎么做.

我应该在哪里放置功能? - 在render()方法的内部?

我应该从中返回什么? - 包含{}占位符中的html和变量的字符串?

我只是在html中调用它吗?

html javascript return function reactjs

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

REST API 设计 - 单个通用端点或多个特定端点

这是一个比较主观的问题,但我还是想听听别人的意见

我正在设计一个可由内部系统(最多几个客户端应用程序)访问的 REST Api。

一般来说,API 需要更新不同汽车品牌的参数。每个汽车品牌都有大约 20 个属性,其中一些属性在所有汽车品牌之间共享,有些是针对每个品牌的。

我想知道设计此 API 端点的更好方法是什么。

  1. 我是否应该使用单个端点,它接受一个字符串 - 这是汽车品牌所有属性的 JSON,以及汽车品牌的 ID。

  2. 或者我应该为每个汽车品牌提供一个单独的端点,该端点具有该汽车品牌所需的确切属性。

所以在第一种方法中,我有一个端点,它有一个字符串参数,我希望它是一个具有所有必要值的 JSON

PUT /api/v1/carBrands/
Run Code Online (Sandbox Code Playgroud)

而在第二种情况的第二种方法中,我为每种类型的汽车品牌都有一个端点,每个端点都有一个类型化的 dto 对象,表示它需要的所有值。

PUT /api/v1/carBrand/1
PUT /api/v1/carBrand/2
.
.
.
PUT /api/v1/carBrand/n
Run Code Online (Sandbox Code Playgroud)

第一种方法似乎节省了很多重复的代码——毕竟唯一的区别是参数集。但是,由于这接受任意字符串,最终用户无法知道他应该传递什么 - 他需要有人告诉他和/或从文档中阅读。

第二种方法更具可读性,任何人都可以填写数据,因为他们知道它是什么。但它主要涉及复制大约 20 次相同的代码。

我真的很难选择一个选项,因为这两种方法都有其缺点。我应该如何判断什么是更好的选择

rest api-design

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

手动添加对实体框架的引用

我正在从事一个围绕EF的项目。我将项目的核心层分为不同的项目。

不幸的是,由于我在项目中缺少对EntityFramework.SqlServer.dll的引用,所以我不断收到正在发生的错误。

将.dll文件添加到我的生成文件夹中可以解决此问题,但是我想通过代码中的“使用”语句解决该问题,但是由于我在项目中缺少对Entity Framework的引用,因此无法做到这一点。

我想知道如何添加一个?

* PS如果我在“添加引用”面板中为EntityFramework进行搜索,那么我不会选择EF。

**我总是可以用NuGet来安装它,但是那不是多余的,因为我已经安装了它吗?

c# entity-framework reference visual-studio nuget

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

Git在推送分支之前获得最新的更改

我有一个features基于本地的本地分支,master在我的代码中添加一些东西.我现在准备将它们合并回来master,但是,master从那时起,远程分支的状态发生了变化.

如何获取最新版本的master,然后在其上添加我的更改,以便我可以向我的远程master分支发出拉取请求.

我在这里读了几篇类似的文章,但他们都给出了不同的答案,我感到很困惑.

我应该首先"切换"到我的主分支,做一个git pull然后以某种方式将我的features分支合并到它(解决任何冲突),或者是否有另一种方式.

有些文章指出了使用方法git checkout branch features,但我不确定这是什么意思.据我所知,它git checkout只是切换到某个分支.

任何人都可以指出我正确的方向,我将如何处理这个问题.再次,我只需要获取我的远程master分支的最新更改,以便当我推动我的features分支时,我不会遇到大量冲突.

git version-control merge git-checkout branching-and-merging

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

Java:使用lambda表达式对数组进行排序?

我最近进入了函数式编程和Java 8 lambdas.我有一组int,我想按升序排序.

我试图用lambda做的方式如下:

Arrays.stream(intArray).sorted((x, y) -> Integer.compare(x, y) == -1);
Run Code Online (Sandbox Code Playgroud)

这个问题是我的编译器说:

Error:(12, 32) java: method sorted in interface 
java.util.stream.IntStream cannot be applied to given types;
required: no arguments
found: (x,y)->Int[...]== -1
reason: actual and formal argument lists differ in length
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

java sorting lambda functional-programming java-8

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

C#不能在静态上下文中访问非静态成员字段,而实际上不在静态上下文中

谁能解释为什么我收到错误“无法在静态上下文中访问非静态字段 wtf,即使我不在静态上下文中。

我在“public int variable = wtf.queuePosition;”行上收到错误消息

class Test
{

    public Test wtf = new Test();
    public int variable = wtf.queuePosition;

    private int queuePosition;
    public Test()
    {
        queuePosition = 5;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# static

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

git更新分支到master

我有一个feature工作的分支。昨天我做了一次提交,还把我的feature分支合并到了远程master分支中。

现在,我希望继续在我的分支机构上工作并添加更多功能。但是,从昨天开始,其他人已经向master分支添加了一些其他代码。我如何“更新”我的feature分支,以便它具有从的所有最新更改master

很明显,我可以拉出它的最新版本,master并简单地从中创建一个新分支,但是我想可以“更新”我当前的feature分支了。

git version-control branch branching-and-merging

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

C#将堆栈转换为数组并对其进行排序

我最近进入了C#,我试图了解一下Stacks.我想尝试对堆栈进行排序,首先将其转换为数组,但我得到了一个奇怪的错误.

这是我的代码:

using System;
using System.Collections.Generic;

class Program
{
    public static Stack<int> numbers = new Stack<int>();
    static void Main(string[] args)
    {
        string[] input = Console.ReadLine().Split(' ');

        int n = int.Parse(input[0]);
        int s = int.Parse(input[1]);
        int x = int.Parse(input[2]);

        input = Console.ReadLine().Split(' ');
        for (int i = 0; i < n; i++)
        {
            numbers.Push(int.Parse(input[i]));
        }

        for (int i = 0; i < s; i++)
        {
            numbers.Pop();
        }

        if (numbers.Count == 0)
            Console.WriteLine(0);
        else if (numbers.Contains(x))
            Console.WriteLine("true");
        else
            Console.WriteLine(Array.Sort(numbers.ToArray()));


    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我的代码的最后一部分(最后一行): …

c# arrays sorting stack return-type

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

C#String.Equals在相同的字符串上返回false

我正在研究一个项目,其中一部分需要比较2个字符串.我的问题是,每当我尝试比较它们时,我总是得到假(==, .Equals(), String.Equals()- 它们都返回假,即使我有两个完全相同的字符串)

这是我的代码的一部分.

var tagType = JObject.Parse(json).First.First.ToString();
foreach (var type in assembly.ExportedTypes)
{
    var name = tagType;
    var currentType = type.Name;

    var a = name.Length;
    var b = currentType.Length;

    var result = currentType == name;
    var result1 = currentType.Equals(name);
    var result2 = String.Equals(name, currentType, StringComparison.CurrentCulture);
    var result3 = String.Equals(name, currentType, StringComparison.InvariantCulture);
    var result4 = String.Equals(name, currentType, StringComparison.Ordinal);
    var result5 = String.Equals(name, currentType, StringComparison.CurrentCultureIgnoreCase);
}
Run Code Online (Sandbox Code Playgroud)

现在在调试我的时候foreach,我最终达到了一个名称,currentType两者都相同的字符串 - "AutoIncrementTag".在同一点上,它们的长度(a和b)相等--16个字符.

这是调试输出的样子:

//name -        "AutoIncrement??g"
//currentType …
Run Code Online (Sandbox Code Playgroud)

c# string compare equals-operator

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