小编Eno*_*noy的帖子

React:如何检查收到的道具是否未定义?

您好,感谢您的时间:

我正在学习以下教程:https : //app.pluralsight.com/library/courses/react-flux-building-applications/table-of-contents

目前我已经检测到,当您尝试创建作者时,它会尝试加载当前作者的 URL 的作者 ID。因为它正在被创建,它是未定义的,因此创建作者功能不起作用。

我已经阅读了一些关于在 JS 和 React 中检查未定义类型的主题: 如何确定变量是“未定义”还是“空”?

在 React 中检查未定义

https://github.com/facebook/react/issues/3725

我尝试了以下方法:

在 manageAuthorForm 中,我们将作者的状态传递给 authorForm:

  render() {
        return (
            <AuthorForm author={this.state.author}
                        onChange={this.setAuthorState}
                        onSave={this.saveAuthor}/>
        );
    };
Run Code Online (Sandbox Code Playgroud)

然后我尝试进入 AuthorForm:

import React from 'react';
import {Input} from "../common/textInput";
import Link from "react-router-dom/es/Link";

class AuthorForm extends React.Component {
    componentWillReceiveProps(nextProps) {
        if (nextProps.state.author === undefined) {
            this.props.author = {
                author: {
                    id: '',
                    firstName: '',
                    lastName: '',

                }
            };
        }
    }

    render() {
        return (
            <form> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

如何在Visual Studio Code for Unity函数名称中获取智能感知?

我正在关注有关Unity的教程,并且看到讲师在编写方法名称时具有智识。

但是我对类和变量只有智能感知,我的意思是像Rigidbody这样的Unity类和我自己的变量。

在此处输入图片说明

我也读过: 自动补全在Visual Studio中不起作用

如何在Visual Studio 2017中为Unity启用智能感知

c# intellisense unity-game-engine visual-studio-code

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

三:我们如何将一个局部加载的网格插入由三个生成的画布中来显示它?

您好,感谢您阅读此问题:

我正在学习Threejs,目前我有一个奇怪的困难:

我已经学会了如何使用加载器加载格式为NRRD的本地文件,格式为HTML/JAVASCRIPT:这里是repo:https://github.com/YoneMoreno/LoadNRRDInThreeJSExample

作为它的样子的一个例子:

在此输入图像描述

但是,我想将前面的例子与React集成.

我已经研究了如何使用这个SO线程将React和Three联系起来: 在React中渲染three.js元素?

现在我的代码看起来像:

/*global THREE */

import React from 'react';

class LoadNRRD extends React.Component {

    constructor(props) {
        super(props)

        this.start = this.start.bind(this)
        this.stop = this.stop.bind(this)
        this.animate = this.animate.bind(this)
    }

    componentDidMount() {
        const width = this.mount.clientWidth
        const height = this.mount.clientHeight

        const scene = new THREE.Scene()
        const camera = new THREE.PerspectiveCamera(
            75,
            width / height,
            0.1,
            1000
        )

        var loader = new THREE.NRRDLoader();
        loader.load("models/columnasegmentado01.nrrd", function (volume) {
            var sliceZ;


            //z plane

            var indexZ = 0; …
Run Code Online (Sandbox Code Playgroud)

javascript integration three.js reactjs

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

Prolog返回一个列表,其中只包含与列表头部相等的元素

您好我想问一下我有以下代码:

principio([],[]).
principio([H],[H]).
principio([H,_|_],[H]).
principio([H,H|C],P) :-
    principio([H|C],R),P=[H|R].
Run Code Online (Sandbox Code Playgroud)

我想要一种方法:

?- principio([222,333,101,202,12,222,13,222],X).

X = [222,222,222]
Run Code Online (Sandbox Code Playgroud)

但是在这一刻我只得到了头脑:

X = [222]
Run Code Online (Sandbox Code Playgroud)

因此,为了清楚起见,我希望:第一个元素的所有连续出现都作为列表.

我怀疑的是这个任务P=[H|R]为什么不放弃:

principio([H,H|C],P) :-
    principio([H|C],P)
Run Code Online (Sandbox Code Playgroud)

另外,你会如何修改它以获得我要求的结果?谢谢

prolog

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

Angular如何测试需要位置的组件

您好,感谢您的宝贵时间!

我正在学习如何使用Angular,并且对学习如何测试其组件感兴趣。

目前,我正在苦苦挣扎,因为我已经完成了Angular页面的“英雄之旅”教程,并且正在测试代码以更好地理解它。

关键是我正在测试hero-details组件,其代码为:

import {Component, OnInit, Input} from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import {MyHeroService} from '../hero-service/my-hero.service';
import {Location} from '@angular/common';
import {Hero} from '../Hero';

@Component({
  selector: 'app-hero-details',
  templateUrl: './hero-details.component.html',
  styleUrls: ['./hero-details.component.css']
})
export class HeroDetailsComponent implements OnInit {
  @Input() hero: Hero;

  constructor(private route: ActivatedRoute,
              private myHeroService: MyHeroService,
              private location: Location) {
  }

  ngOnInit(): void {
    this.getHero();
  }

  getHero(): void {
    const id = +this.route.snapshot.paramMap.get('id');
    this.myHeroService.getHero(id)
      .subscribe(hero => this.hero = hero);
  }

  goBack(): void {
    this.location.back();
  }
} …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jasmine angular

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

Prolog将元素删除到给定列表中

您好,我希望对此任务有一些建议或意见:

定义一个带有三个参数的语句,其中第一个是列表,第二个是元素(原子或列表),最后一个是必须完成它的列表等于第一个匹配第二个参数的列表元素,消失了.

Examples:

> elimina([f, e, d, [a, h], a, d, a], a, L)

L = [f, e, d, [a, h], d]

> elimina([f, e, d, [ a, h], a, [d, a]], [a, h], L)

L = [f, e, d, a, [d, a]]
Run Code Online (Sandbox Code Playgroud)

我试过了:

elimina([],_,[]).
elimina([X],X,[]).
elimina([X],Y,[X]).
elimina([H|T],H,Result) :-
 elimina([T],H,Result).
elimina([H|T],Y,Result):-
 elimina([T],H,Result).
Run Code Online (Sandbox Code Playgroud)

当我喊出递归调用时,我怀疑要写什么:

elimina([T],H,Result).
Run Code Online (Sandbox Code Playgroud)

因为首先我不知道输入第二个元素与头部匹配时的行为应该有多么不同,而不是与头部匹配; 所以我打了同样的电话.我也怀疑因为:真的需要把基础案例:elimina([X],Y,[X]).?我认为我们可以通过将要删除的元素与真正进入列表的元素进行匹配来传递练习.

感谢您的时间.

prolog

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

C# 按字母顺序对字符串数组排序,处理以大写字母开头的字符串。第一的

1) 有一个 Kata 说明对字符串数组中的所有字符串进行排序,然后取第一个单词并在每个字母之间添加 ***:https : //www.codewars.com/kata/sort-and-star

2)例如:

(1) 给出:

bitcoin
take
over
the
world
maybe
who
knows
perhaps
Run Code Online (Sandbox Code Playgroud)

(2) 订购后:

bitcoin
knows
maybe
over
perhaps
take
the
who
world
Run Code Online (Sandbox Code Playgroud)

(3)返回结果为:

b***i***t***c***o***i***n
Run Code Online (Sandbox Code Playgroud)

3)但是我面临的困难如下:我们如何表达“以大写字母开头的单词先排序”?

4)我尝试了以下代码:

using System;
public class Kata
{
  public static string TwoSort(string[] s)
  {
  foreach(string str in s){
    Console.WriteLine(str);
  }
  Console.WriteLine("");
  Array.Sort(s);
  foreach(string str in s){
    Console.WriteLine(str);
  }

  Console.WriteLine("");

  string firstWord = s[0];
  string result = "";


  foreach(char letter in firstWord){
    result += letter + "***";

  } …
Run Code Online (Sandbox Code Playgroud)

c# arrays sorting string alphabetical

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

如果我们不知道初始状态,也不知道头/尾在哪里,我们如何计算双向链表(循环列表)内的元素呢?

我正在做以下编程练习:火车中有多少辆货车?。声明是:

\n\n
\n

你坐在一列永久绕圈移动的火车上。火车\n是环形的:头与尾相连,你可以直接从一个\n转到另一个\n。

\n\n

每辆马车都有灯。灯的初始状态未知。如果您愿意,您可以打开或关闭它。

\n\n

数一下货车的数量!

\n\n

您可以根据需要在车厢之间移动。

\n\n

限制条件。清点车厢数量后,火车上的灯应处于初始状态。但最终你不需要在你开始的那辆马车里。

\n\n

使用已实现的 Train 方法:

\n\n

公共布尔 isLightOnInCurrentWagon()

\n\n

公共无效开关灯()

\n\n

公共无效 goToNextWagon()

\n\n

公共无效 goToPreviousWagon()

\n\n

火车符号“1 : 0 : 0”表示您有一列有三节车厢的火车。第一辆货车的灯亮着,另外两辆货车的灯熄灭。

\n
\n\n

首先,我想保留三个整数列表:原始的、交换的和最终的。Original 会按开始时的状态存储灯光。切换将存储原始的补充(切换每辆货车的灯后)。Final 将使灯光保持原始状态(切换回原始状态后)。

\n\n
For example for train: 1:0:1\n\nOriginal: {1,0,1}\nSwitched: {0,1,0}\nFinal: {1,0,1}\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而困难在于,我们如何知道火车的头/起点在哪里?

\n\n

此外,我尝试了一些基本情况的代码,其中火车只有一节车厢:

\n\n
import java.util.*;\npublic class Solution {\n    public int howManyWagons/*\xe2\x9d\x94*/(Train train){\n      int haveWeEnded = 0, prev = 0, first = 0, next = 0;\n      if(train.isLightOnInCurrentWagon()){\n        first = 1;\n …
Run Code Online (Sandbox Code Playgroud)

java algorithm math list object

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

保持一个列表项突出显示,react.js

我想保留当前单击列表项的背景颜色和颜色。我已经使用以下代码通过 CSS 突出显示了它:

.segmentsList:hover {
    background: black;
    color: white;
    cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)

我尝试将 onClickFunction 附加到 li 的 onClick 事件,如下所示:

import React, {Component} from 'react';
import Link from "react-router-dom/es/Link";
import {Button} from 'reactstrap';
import cabeza from '../atlas/json/cabeza.json';

const parte = getParameterByName('parte') || 0;


export default class SegmentsList extends Component {

    onClickFunction(e) {
        console.log(e);
        // e.target.element.class="newBlackColor";
    }

    render() {


        console.log(cabeza[parte].etiquetas);
        readTextFile(cabeza[parte].etiquetas);

        function readTextFile(url) {
            const rawFile = new XMLHttpRequest();
            rawFile.open("GET", url, false);
            rawFile.overrideMimeType('text/xml; charset=iso-8859-1');
            rawFile.onreadystatechange = function () {
                if (rawFile.readyState === …
Run Code Online (Sandbox Code Playgroud)

javascript css reactjs

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

RayCastHit2D未检测到播放器

我试图从实例化的导弹预制件中投射2D雷,如下所示:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyMissile : MonoBehaviour {


    void Update () {
        RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down,1f);
        Debug.DrawRay(transform.position, Vector2.down, Color.green);
        if(hit)
        {
            print("Hit");
        }
        else
        {
            print("No hit");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以在现场清楚地看到雷穿过玩家: 在此输入图像描述

玩家有一个Rigidbody2D和一个BoxCollider2D作为触发器: 在此输入图像描述

而EnemyMissile有自己的RigidBody2D和BoxCollider2D作为触发器: 在此输入图像描述

但是我在控制台上看不到任何内容

从导弹投射射线的想法是当EnemyMissile进入玩家时播放AudioClip.

我看过: Raycast Hit Collider总是NULL Physics2D.Raycast返回null

谢谢您的帮助.

编辑 回答@Monofuse评论:当我选择播放器时,转换为:x:0.4567,y:-1.58,z:0

在此输入图像描述

当我选择导弹时,变换是:x:0.3699,y:-1.054,z:0

在此输入图像描述

编辑回答@Ada Nub:

我默认选中了两个选项:查询命中触发器和查询在碰撞器中启动.

现在我取消选中了碰撞器中的查询开始,但结果是一样的,我没有在控制台上看到打印:

在此输入图像描述

我意识到自己的错误,我没有按下控制台中的"信息"选项卡: 在此输入图像描述

现在它的工作原理: 在此输入图像描述

c# unity-game-engine game-physics raycasting

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

编译错误:只能将赋值,调用,递增,递减和新对象表达式用作语句

我以前读过:

C#仅赋值,调用,递增,递减和新对象表达式可以用作语句

仅赋值,调用,递增,递减和新对象表达式可以用作语句和; 预期

我写以下内容:

namespace Converter {
      public class Converter
      {
        public string dnaToRna(string dna)
        {
          string rna = "";
          foreach(char letter in dna){
            letter=='T' ? rna+='U' : rna+=letter;
            rna+=letter;
          }
          return rna;
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

当我通过测试调用代码时:

    namespace Converter {
  using NUnit.Framework;
  using System;

  [TestFixture]
  public class Test
  {
    [Test]
    public void test()
    {
      Converter converter = new Converter();
      Assert.AreEqual("UUUU", converter.dnaToRna("TTTT"));
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它说:

src/Solution.cs(9,9): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be …
Run Code Online (Sandbox Code Playgroud)

c#

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