小编Ree*_*g78的帖子

React Context API 不适用于自定义 NPM 组件库

我已经构建了一个 ReactJS 组件库,用于使用 sim 链接通过 NPM 包安装的多个项目。我想使用上下文 API 将数据从组件库提供的父组件传递到我的基础项目,以便由组件库提供的多个使用者组件使用。当我尝试时,我的子组件中的上下文始终未定义。

如果我将我的消费者组件放在我的库中的提供者组件中,它就像一个冠军,但这会破坏我想要实现的目标。如果我将提供者和消费者都导出到我的基础项目,消费者将看不到提供者。

这是来自我的基础项目

import { Screen, COD, GenericSocketServer } from 'component-library'

export default class View extends React.PureComponent {
  render() {
    return (
      <Screen className="screen odmb1">
        <GenericSocketServer>
          <COD />
        </GenericSocketServer>
      </Screen>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

这是从我的“组件库”导出的提供程序代码

import React from 'react';
import MyContext from "./context";
import COD from './../cod';

export default class GenericSocketServer extends React.Component {
  render() {
    return (
      <MyContext.Provider value={{ foo: 'bar' }}>
        <COD />
        {this.props.children}
      </MyContext.Provider>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我在“组件库”中使用的内容代码

import React …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-context

17
推荐指数
2
解决办法
1783
查看次数

从Visual Studio post build事件命令行运行Grunt

我试图在Visual Studio 2010和Visual Studio 2012中都这样做.如果我的Gruntfile.js文件位于我的项目的根目录中,我可以从post build事件命令行运行"grunt"命令,它运行时没有问题.

grunt or grunt.cmd
Run Code Online (Sandbox Code Playgroud)

但如果它在子目录中

$(ProjectDir)Public\grunt or $(ProjectDir)Public\grunt.cmd
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误

The command "c:\web\Public\grunt.cmd" exited with code 9009.
Run Code Online (Sandbox Code Playgroud)

我一直在研究这个,但我找不到任何帮助.我确实在grunt文档中发现我需要使用"grunt.cmd"而不是仅仅调用"grunt",但这对我没什么帮助.

visual-studio-2010 post-build-event visual-studio-2012 gruntjs

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