小编ROO*_*DAY的帖子

如何在Windows上git pull for multiple repos?

所以我有很多回购,有时候我会忘记一些人是否落后于他们,所以我想知道有一种方法可以在一个.bat脚本中为每个仓库提供git pull.我看到有人为linux做了我相信这里,但我在一台Windows机器上.有谁知道如何为Windows做这个?

windows git bash github

12
推荐指数
3
解决办法
8687
查看次数

如何让webpack在打包时不使用window对象?

我正在制作一个 React 组件库来抽象出我在多个项目中使用的一些组件。有些项目是用 CRA 制作的,有些是用 Gatsby 制作的,有些可能是其他东西,等等。我使用了 Neutrino.js 框架/工具链,因为它链接在 React 文档网站上,但我遇到的问题是默认情况下输出构建的文件都使用该window对象,这会导致gatsby build破坏,因为windowNode/SSR 中不存在该对象。有没有办法让 Neutrino/webpack 输出一个不使用窗口的包?在寻找解决方案并与其他库进行比较时,似乎 ESM 是最好的,但我不确定如何让 webpack 使用它,我认为它目前不受支持。我还应该使用其他工具吗?

javascript module reactjs webpack

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

库中的反应上下文未在消费者中更新

我最初关注这个项目是为了将 Firebase 添加到 Gatsby React 应用程序中。它涉及创建 Firebase 上下文,使用提供者包装根布局,然后使用 withFirebase HOC 根据需要使用 Firebase 使用者包装组件。当我最初这样做时,它工作得很好,但我想将代码移动到一个可以在我的应用程序中重用的包中。这是 HOC

export const withFirebase = (Component) => (props) => (
  <FirebaseContext.Consumer>
    {(firebase) => <Component {...props} firebase={firebase} />}
  </FirebaseContext.Consumer>
);
Run Code Online (Sandbox Code Playgroud)

每个页面都以一个呈现以下内容的布局组件开始:

<FirebaseContext.Provider value={this.state.firebase}>
  <AppWithAuthentication>
    {this.props.children}
  </AppWithAuthentication>
</FirebaseContext.Provider>
Run Code Online (Sandbox Code Playgroud)

AppWithAuthentication它本身使用withFirebaseHOC,因为它需要 Firebase 来获取 AuthUser(然后将其存储在上下文中并通过提供者传递),并且它能够很好地做到这一点。

上述所有情况都发生在包代码本身中,但是当我将包导入到其他 React 项目中时,尝试使用 usewithFirebase停止工作,因为用它包装的任何组件都不会收到更新的上下文。我通过检查 React Dev 工具中的组件树来确认这一点,Firebase Provider 获取更新的非空值,内部的使用者AppWithAuthentication也获取它。但我的实际应用程序内的消费者不会更新(并且我在同一库中创建的 AuthUser 上下文也有同样的问题)。

我什至认为,也许父级正在使用更新后的消费者进行渲染,但子级没有重新渲染,但在计算渲染并记录它们之后,很明显,我的应用程序中的组件渲染的次数比AppWithAuthentication. 为了让它更清楚一点,这是我的组件树(从页面根目录的布局组件开始):
组件树

这是 Provider 显示的值:
有价值的提供者

这是AppWithAuthentication消费者显示的值:
有价值的消费者

这是我的应用程序内部没有值的消费者:
没有价值的消费者

我完全被困在这里,希望得到任何见解。

编辑:经过更多测试后,我发现了更多信息,但我仍然陷入困境。看起来,当重新加载我的页面时,该Layout组件呈现 …

reactjs webpack react-context

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

malloc(sizeof(struct xxxx))没有分配任何内存

我正在使用Learn C the Hard Way在线书籍学习C,练习17,我遇到了一个令人困惑的错误.在练习中,我被告知使用malloc(sizeof(struct xxxx))为连接和数据库分配内存,如下所示:

struct Connection *conn = malloc(sizeof(struct Connection));
if(!conn) die("Memory error");

conn->db = malloc(sizeof(struct Database));
if(!conn->db) die("Memory error");
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,我得到一个分段错误,然后在valgrind下运行它后,我收到此错误:

==5770== Command: ./ex17 db.dat c
==5770== 
==5770== Invalid read of size 1
==5770==    at 0x40C4130: _IO_file_fopen@@GLIBC_2.1 (fileops.c:267)
==5770==    by 0x40B88CA: __fopen_internal (iofopen.c:90)
==5770==    by 0x40B893A: fopen@@GLIBC_2.1 (iofopen.c:103)
==5770==    by 0x8048861: Database_open (ex17.c:58)
==5770==    by 0x8048C4C: main (ex17.c:156)
==5770==  Address 0x77 is not stack'd, malloc'd or (recently) free'd
Run Code Online (Sandbox Code Playgroud)

main中的第156行只是通过函数创建一个新的连接结构struct Connection *conn = Database_open(filename, …

c struct memory-management

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