小编dav*_*000的帖子

如何更改使用的纱线版本?

我用Homebrew安装yarn.运行yarn -v我目前使用的节目0.23.2.我跑去brew upgrade yarn买最新版本,就是这样0.24.6.

在Homebrew成功升级后yarn,我yarn -v再次运行,但版本仍然存在0.23.2.如何更改我正在运行的纱线版本?

homebrew yarnpkg

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

projects.map不是jest-cli的函数

我正在写一个反应应用程序并用开玩笑测试它.但是,每当我jest从终端运行命令时,我都会出现此错误.

TypeError: projects.map is not a function
    at Object.<anonymous> (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:172:28)
    at next (native)
    at step (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:18:30)
    at /Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:34:14
    at Object.<anonymous> (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:15:12)
    at Object.module.exports [as runCLI] (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:2 03:17)
    at Object.run (/Users/DavidHu/.nvm/versions/node/v6.2.1/lib/node_modules/jest-cli/build/cli/index.js:42:17)
    at Object.<anonymous> (/Users/DavidHu/.nvm/versions/node/v6.2.1/lib/node_modules/jest-cli/bin/jest.js:16:25)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
Run Code Online (Sandbox Code Playgroud)

我进入node_modules查看导致错误的代码行,projects是项目当前路径的字符串.

这是我的开玩笑配置 package.json

  "jest": {
    "transform": {
      ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这个错误,知道如何修复它?

javascript typescript reactjs jestjs

19
推荐指数
2
解决办法
4516
查看次数

如何立即打印标准输出?

我该如何立即输出stdoutstdout所有输入完成后将打印.

require 'open3'
def run(cmd)
    Open3.popen3(cmd) do |stdin, stdout, stderr, thread|

    Thread.new do
      stdout.each {|l| puts l}
    end

    Thread.new do
      while thread.alive?
        stdin.puts $stdin.gets
      end
    end

    thread.join
  end
end

run ("ruby file_to_test.rb")
Run Code Online (Sandbox Code Playgroud)

file_to_test.rb:

puts "please, enter s"
puts "please, enter q"

s = gets.chomp!
q = gets.chomp!

puts s
puts q
Run Code Online (Sandbox Code Playgroud)

运行main.rb后的结果是:

somestring
somestring2
please, enter s
please, enter q
somestring
somestring2
Run Code Online (Sandbox Code Playgroud)

我该如何立即输出stdout

ruby io stdin stdout

13
推荐指数
2
解决办法
9633
查看次数

具有联合类型的通用抛出不可分配的错误

我有一个减速器,它有一个动作创建器,它可以是两种不同类型对象的数组,每个对象都有自己的接口。但是,我收到此错误

Type '(A | B)[]' is not assignable to type 'B[]'.
  Type 'A | B' is not assignable to type 'B'.
    Property 'productionId' is missing in type 'A' but required in type 'B'
Run Code Online (Sandbox Code Playgroud)

我怀疑这个错误是由于两个接口具有相似的值,除了 B 比 A 多一个值?

这是打字稿游乐场

这是完整的可重现代码

interface A {
  id: number;
  name: string;
}

interface B {
  id: number;
  productionId: number;
  name: string;
}

interface IAction<Data> {
  type: string;
  data: Data;
}

interface ISelectionOptionsReducerState {
  a: A[];
  b: B[];
}

let initialState: ISelectionOptionsReducerState = { …
Run Code Online (Sandbox Code Playgroud)

generics typescript redux

12
推荐指数
2
解决办法
9919
查看次数

class"ViewController"没有初始值设定项

我试图建立一个简单的声音应用程序.我想要一个按钮来播放一个非常像音板的剪辑.问题是,当我去构建它时,类"ViewController"没有初始化器

import UIKit
import AVFoundation


class ViewController: UIViewController {


    var audioPlayer: AVAudioPlayer

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }



    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    @IBAction func playSound(sender:UIButton){

        // Set the sound file name & extention
        let audioFilePath = Bundle.main.path(forResource: "emp_learntoknow", ofType: "mp3")

        if audioFilePath != nil {

            let audioFileUrl = URL.init(fileURLWithPath: audioFilePath!)
            do {
            audioPlayer = try AVAudioPlayer(contentsOf: …
Run Code Online (Sandbox Code Playgroud)

swift

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

如何创建验证字符串格式的打字稿类型?即检查字符串是否是有效的 css 长度属性

所以我有一个反应项目,其中组件采用高度支柱。该 prop 用于确定组件的 css 属性(我使用情感库)

例如,

render() {
  const styles = css`
    height: ${this.props.height};
  `;

  return (
    <div style={styles}>
      ...
    </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

我有一个高度类型,目前是

interface Props {
  height: number | string;
}
Run Code Online (Sandbox Code Playgroud)

我不想创建一个检查高度是否为字符串的类型,而是创建一个验证高度单位(如果它是字符串)的类型。

例如,

10px是一个有效的道具,所以没有打字稿错误。

10xp会抛出打字稿错误。

有没有办法创建一个类型来检查第一部分是数字,第二部分是这些值之一?

type CssAbsoluteUnit = "cm" | "mm" | "in" | "px" | "pt" | "pc";

type CssRelativeUnit = "em" | "ex" | "ch" | "rem" | "vw" | "vh" | "vmin" | "vmax" | "%";
Run Code Online (Sandbox Code Playgroud)

我想以打字稿编译器会抛出错误的方式来执行此操作,因此仅使用正则表达式来验证渲染并不能真正完成这项工作。

typescript reactjs

9
推荐指数
2
解决办法
1956
查看次数

React Native Element Type无效.选中渲染方法

我环顾四周,如果导入或导出不正确,大多数问题都是结果,但我已经检查了我的应用程序,我不确定我导出/导入的错误.这是我得到的确切错误.

React.createElement:type无效 - 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object.您可能忘记从其定义的文件中导出组件.检查渲染方法FooterTabs.

不确定render方法的含义.该组件没有render方法.无论如何...

所以FooterTabs我只是渲染一些页脚选项卡

import React, { PropTypes } from 'react'
import { View, Text } from 'react-native'
import { Tabs, Tab, Icon } from 'react-native-elements'
import { HomeContainer, TrackLibraryContainer } from '~/containers'
import { NimbusCamera } from '~/components'

export default function FooterTabs (props) {
    console.log(props)
    FooterTabs.propTypes = {
        navigator: PropTypes.object.isRequired,
        dispatch: PropTypes.func.isRequired,
        activeFooterTab: PropTypes.string.isRequired,
        setFooterTab: PropTypes.func.isRequired,
    }
    return (
        <Tabs>
            <Tab
                selected={props.activeFooterTab === "home"}
                titleStyle={{fontWeight: 'bold', fontSize: 10}}
                selectedTitleStyle={{marginTop: -1, marginBottom: 6}}
                title="Home" …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native

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

ruby gsub新行字符

我有一个带有换行符的字符串,我想要用于空格.

"hello I\r\nam a test\r\n\r\nstring".gsub(/[\\r\\n]/, ' ')
Run Code Online (Sandbox Code Playgroud)

像这样的东西^只有我的正则表达式似乎也在替换'r''n'字母.另一个约束是有时模式重复两次本身,因此就会与在连续两个空格来代替,虽然这不是优选的,最好不是被切断的所有文本分开.

如果有办法只选择新行字符.或者甚至更好,如果有更多的方法来接近这个去正则表达式?

ruby regex newline gsub

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

导出更高阶的组件而没有'export default'

react-click-outside如果用户在菜单外单击,我用来隐藏下拉菜单.通常,我会像这样导出组件:

export default enhanceWithClickOutside(Dropdown);
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,我想导出组件

export { enhancedWithClickOutside(Dropdown) };
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用.有没有办法导出使用{}并应用更高阶的组件功能?

reactjs higher-order-components

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

允许在 npm 模块中直接导入文件,如 lodash

Lodash 允许导入

import merge from 'lodash/merge';
Run Code Online (Sandbox Code Playgroud)

这大大减少了导入的大小。我维护了一个名为 的 npm 模块react-spinners,并且我想允许相同的导入。

https://github.com/davidhu2000/react-spinners

例如,目前的导入方式是

import { BarLoader } from 'react-spinners';
Run Code Online (Sandbox Code Playgroud)

我想允许

import BarLoader from 'react-spinners/BarLoader';
Run Code Online (Sandbox Code Playgroud)

根据我的发现,为此,我需要具有以下文件夹结构

main
  - index.js <- the file that exports everything
  - BarLoader.js
  - ... other loaders
Run Code Online (Sandbox Code Playgroud)

这种结构非常混乱,因为所有的 js 文件都在根目录中。

我目前的设置是

main
  - index.js
  - dist <- output folder from compiling
    - index.js
    - BarLoader.js
  - src <- uncompiled react code
    - index.js
    - BarLoader.js
Run Code Online (Sandbox Code Playgroud)

所以,目前,为了只导入一个加载器是

import BarLoader from 'react-spinners/dist/BarLoader';
Run Code Online (Sandbox Code Playgroud)

我找不到任何可以告诉我如何dist从上述语句中删除 的内容。

npm reactjs react-spinners

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