我用Homebrew安装yarn.运行yarn -v我目前使用的节目0.23.2.我跑去brew upgrade yarn买最新版本,就是这样0.24.6.
在Homebrew成功升级后yarn,我yarn -v再次运行,但版本仍然存在0.23.2.如何更改我正在运行的纱线版本?
我正在写一个反应应用程序并用开玩笑测试它.但是,每当我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)
有没有人遇到过这个错误,知道如何修复它?
我该如何立即输出stdout?stdout所有输入完成后将打印.
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?
我有一个减速器,它有一个动作创建器,它可以是两种不同类型对象的数组,每个对象都有自己的接口。但是,我收到此错误
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) 我试图建立一个简单的声音应用程序.我想要一个按钮来播放一个非常像音板的剪辑.问题是,当我去构建它时,类"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) 所以我有一个反应项目,其中组件采用高度支柱。该 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)
我想以打字稿编译器会抛出错误的方式来执行此操作,因此仅使用正则表达式来验证渲染并不能真正完成这项工作。
我环顾四周,如果导入或导出不正确,大多数问题都是结果,但我已经检查了我的应用程序,我不确定我导出/导入的错误.这是我得到的确切错误.
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) 我有一个带有换行符的字符串,我想要用于空格.
"hello I\r\nam a test\r\n\r\nstring".gsub(/[\\r\\n]/, ' ')
Run Code Online (Sandbox Code Playgroud)
像这样的东西^只有我的正则表达式似乎也在替换'r'和'n'字母.另一个约束是有时模式重复两次本身,因此就会与在连续两个空格来代替,虽然这不是优选的,最好不是被切断的所有文本分开.
如果有办法只选择新行字符.或者甚至更好,如果有更多的方法来接近这个去正则表达式?
react-click-outside如果用户在菜单外单击,我用来隐藏下拉菜单.通常,我会像这样导出组件:
export default enhanceWithClickOutside(Dropdown);
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,我想导出组件
export { enhancedWithClickOutside(Dropdown) };
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用.有没有办法导出使用{}并应用更高阶的组件功能?
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从上述语句中删除 的内容。