小编Joe*_*lay的帖子

与Redux反应?"背景"问题怎么样?

我通常在Stack上发布代码相关的东西,但这更多的是关于社区的一般想法是什么的问题.

似乎有很多人主张使用Redux和React来管理数据/状态,但是在阅读和学习两者时,我遇到了一些看起来不太合适的东西.

终极版

在本页的底部:http://redux.js.org/docs/basics/UsageWithReact.html(传递商店)它建议使用React'Context'的"Magic".

一种选择是将其作为道具传递给每个容器组件.然而,它变得乏味,因为你必须通过表示组件连线存储,因为它们碰巧在组件树中深层渲染容器.

我们建议的选项是使用一个特殊的React Redux组件,该组件可以神奇地使商店可用于所有容器组件......

应对

在React Context页面(https://facebook.github.io/react/docs/context.html)上面有一个警告:

上下文是一种先进的实验性功能.API可能会在将来的版本中发生变化.

然后在底部:

正如在编写清晰代码时最好避免使用全局变量一样,在大多数情况下应避免使用上下文...

不要使用上下文通过组件传递模型数据.明确地通过树线处理数据更容易理解......

所以...

Redux建议使用React'Context'功能,而不是store通过'props' 将其传递给每个组件.虽然React建议相反.

此外,似乎Dan Abramov(Redux的创建者)现在为Facebook(React的创建者)工作,只是为了让我更加困惑.

  • 我正在读这一切吗?
  • 目前关于这个问题的一般共识是什么?

javascript reactjs redux

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

我在chrome中丢失了Node.js调试按钮

nodejs debug的按钮丢失:c

之前:

在此输入图像描述

后:

在此输入图像描述

按钮在哪里?

PS节点应用程序正在运行并显示在chrome:// inspect /

debugging google-chrome node.js

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

检查对象(或只是一个类)是否具有属性

让我们说我有一节课:

module MyModule {
    export class MyClass {
       x:number;
       y:number;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个字符串,"x".如何检查MyClass是否具有属性"x"?

如果我创建一个MyClass实例然后执行:

myClassInstance.hasOwnProperty("x");
Run Code Online (Sandbox Code Playgroud)

它返回false,除非x设置了默认值.但我不想为每个属性设置默认值.如果我甚至可以在不创建MyClass实例的情况下做到这一点,那将是最好的.

typescript

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

从Github Angular 4项目中排除环境文件

如何从Angular 4项目的github中排除环境文件。

我已经将.gitignore更新为以下内容,但是我的环境文件仍在同步到github:/ src / environments / **

# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/out-tsc

# dependencies
/node_modules

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
testem.log
/typings
/src/environments/**

# e2e
/e2e/*.js
/e2e/*.map

# System Files
.DS_Store
Thumbs.db
Run Code Online (Sandbox Code Playgroud)

git github angular-cli angular

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

访问可能存在或可能不存在的Angular服务

我正在开发一个非常模块化的Angular项目 - 可以使用Webpack为不同的客户启用和禁用应用程序的各个部分.到目前为止,这个结构对我来说很有效,但我遇到的一个问题是如何处理可能并不总是存在的服务.

我目前的解决方案非常简单 - 我$injector.has()用来检查服务当前是否存在,如果是,我用$injector.get()它来抓住它:

function initialize($injector) {
    if ($injector.has("barcode")) {
        let barcode = $injector.get("barcode");

        // Do stuff with the barcode service
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎有效 - 但是,我找不到关于这种模式的使用的信息,以及它是否有任何潜在的缺点.

所以,我的问题是:

  • 我应该注意使用注射器有什么注意事项吗?
  • 这样做有更好/更惯用的方法吗?

javascript angularjs

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

升级到Webpack beta 23后,我无法再使用空白扩展

在我升级到webpack beta 23后,我开始在运行webpack时遇到与extension属性有关的错误:

  • configuration.resolve.extensions [0]不应为空.

我的扩展名是:扩展名:['','.ts','.js'],

如果我删除空白扩展选项,配置错误就会消失,但现在我的模块都没有加载,因为它们都是在没有扩展名的情况下加载的.我是否应该在这个新版本中指定空白扩展名?

我想我找到了正确的配置

我不确定这是否正确但经过一系列试验后我尝试使用*符号而不是空字符串.这似乎解决了这个问题.所以扩展属性的最终语法:

扩展:['*','js','ts']

希望这是实现它的预期方式

webpack

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

Reactstrap 中的标签属性有什么作用?

我有一个使用 reactstrap 的导航栏,并希望合并 react-router。在尝试失败后,我在这里找到了解决方案。

但是我不明白语法:

我有一个<NavLink>来自 React-Router 和一个来自 Reactstrap 的导航栏。

而不是将 Reactstrap 包装在 React-Router 中(这会引发警告):

 <NavLink to="/">
   <NavbarBrand className="mx-auto" to="/" tag={ NavLink }>
      My Site
   </NavbarBrand>
 </NavLink>
Run Code Online (Sandbox Code Playgroud)

这是语法:

   <NavbarBrand className="mx-auto" to="/" tag={ NavLink }>
      My Site
   </NavbarBrand>
Run Code Online (Sandbox Code Playgroud)

什么是标签属性?它有什么作用?

谢谢大家!

reactjs reactstrap

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

JavaScript检查时间范围是否重叠

我有一个包含2个对象的数组(myObject1和myObject2一样)。现在,当我添加第三个对象时,我将检查时间范围是否重叠。实际上,我不知道如何以一种高效的方式做到这一点。

var myObjectArray = [];

var myObject1 = {};
myObject1.startTime = '08:00';
myObject1.endTime = '12:30';
...

var myObject2 = {};
myObject2.startTime = '11:20';
myObject2.endTime = '18:30';
...

myObjectArray.push(myObject1);
myObjectArray.push(myObject2);
Run Code Online (Sandbox Code Playgroud)

javascript

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

无限循环React挂钩

我不明白为什么useClick中会出现无限循环, 我看到我使用setVal更改了useEffect中的状态值,但useEffect应该仅在第二个参数中指定的onClick上起作用。我认为这是因为我传递的参数onClick被记录下来,但未调用回调(我使用console.log('go set'检查过)

function useClick(onClick, setVal, val) {
  React.useEffect(() => {
    console.log('Click');
    setVal(val + 1);
  }, [onClick]);
}

const Home = () => {
  const [val, setVal] = React.useState(0);
  const incrementOnClick = React.useCallback(() => {
    console.log('go set');
    setVal(val + 1);
  } , [setVal, val]);
  useClick(incrementOnClick, setVal, val);
  return <div>
    <div>{val}</div>
    <button onClick={incrementOnClick}>Click me</button>
 </div>
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

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

Node.js 中的 process.hrtime() 和 process.hrtime.bigint() 函数指的是什么时间?

process.hrtime()是一个遗留版本的process.hrtime.bigint()方法

process.hrtime();                     // -> [27511, 516453000]   (seconds, remaining nanoseconds)
process.hrtime.bigint();              // -> 27511516453000n      (nanoseconds)
Run Code Online (Sandbox Code Playgroud)
  • 27511516453000 纳秒是 7.6420879036111113 小时

    当我测试时,时间是 11:54 UTC 和 14:54 Locale Time

  • 7.64 小时不是指当前时间,那么 7.64 小时指的是什么?

node.js

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

Trello 如何实时重新加载看板?

我正在使用trello.com来管理我的工作板(类似于 Scrum 的看板),我真的很想知道,当其他人更改此板时,Trello 如何实时重新加载我的板,他们使用了什么技术?

这意味着,当我在两个浏览器上打开我的开发板时。在第一个浏览器上自动更改某些内容,第二个浏览器会重新加载,非常快,更改会显示出来!

有人可以告诉我他们是怎么做到的:D

非常感谢!

html javascript trello

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

CommonChunkPlugin不是构造函数

出于某种奇怪的原因获取此错误

TypeError:webpack.CommonsChunkPlugin不是构造函数

其他插件对我来说很好:

    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    // create global variables accessible on server and client
    new webpack.DefinePlugin({
Run Code Online (Sandbox Code Playgroud)

reactjs webpack babeljs

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