小编And*_*Ray的帖子

Reactjs:如何从父级修改动态子组件状态或道具?

我本质上是试图做出反应,但有一些问题.

这是文件 page.jsx

<RadioGroup>
    <Button title="A" />
    <Button title="B" />
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)

当你点击按钮A,在RadioGroup中组件需要去选择按钮B.

"Selected"只是指来自州或财产的className

这是RadioGroup.jsx:

module.exports = React.createClass({

    onChange: function( e ) {
        // How to modify children properties here???
    },

    render: function() {
        return (<div onChange={this.onChange}>
            {this.props.children}
        </div>);
    }

});
Run Code Online (Sandbox Code Playgroud)

它的来源Button.jsx并不重要,它有一个常规的HTML单选按钮,可以触发本机DOM onChange事件

预期的流程是:

  • 点击按钮"A"
  • 按钮"A"触发onChange,本机DOM事件,它会冒泡到RadioGroup
  • 调用RadioGroup onChange侦听器
  • RadioGroup中需要去选择按钮B.这是我的问题.

这是我遇到的主要问题:我无法<Button>进入RadioGroup,因为这种结构使得孩子们是任意的.也就是说,标记可能是

<RadioGroup>
    <Button title="A" />
    <Button title="B" />
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)

要么

<RadioGroup>
    <OtherThing title="A" />
    <OtherThing title="B" />
</RadioGroup> …
Run Code Online (Sandbox Code Playgroud)

reactjs

88
推荐指数
3
解决办法
8万
查看次数

在redux-saga中的getState?

我有一个商品列表中的商品.当我的应用程序第一次加载时,我需要反序列化项目,就像在基于项目创建一些内存中对象一样.这些项目存储在我的redux商店中并由一个itemsReducer.

我试图使用redux-saga来处理反序列化,作为副作用.在第一页加载时,我发送一个动作:

dispatch( deserializeItems() );
Run Code Online (Sandbox Code Playgroud)

我的传奇很简单:

function* deserialize( action ) {
    // How to getState here??
    yield put({ type: 'DESERISLIZE_COMPLETE' });
}

function* mySaga() {
    yield* takeEvery( 'DESERIALIZE', deserialize );
}
Run Code Online (Sandbox Code Playgroud)

在我的deserialize saga中,我想要处理创建内存版本的项目的副作用,我需要从商店中读取现有数据.我不知道该怎么做,或者如果这是一种模式,我甚至应该尝试使用redux-saga.

javascript reactjs redux redux-saga

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

bash提示和回显函数内部的颜色

我在.bashrc中有这个:

LIGHTGREEN="\[\033[1;32m\]"
LIGHTRED="\[\033[1;31m\]"
WHITE="\[\033[0;37m\]"
RESET="\[\033[0;00m\]"

function error_test {
    if [[ $? = "0" ]]; then
        echo -e "$LIGHTGREEN"
    else
        echo -e "$LIGHTRED"
    fi
}

PS1="\u\$(error_test)@\w$RESET \$ "
Run Code Online (Sandbox Code Playgroud)

这似乎使shell输出完全正确:

username\[\]@~/

在我的提示中显示了颜色代码周围的转义[和].如果我从它周围的颜色中删除转义码,但是bash换行会突然失败.

请注意,如果PS1="LIGHTGREEN - whatever - $RESET"它可以工作,[和]不会被转义.但是,我想在一个函数中执行此操作,这似乎是个问题.

我找不到任何关于此的好文档.man echo甚至没有列出-e选项.Bash似乎有很多无证的手工知识.

bash function colors echo

46
推荐指数
3
解决办法
2万
查看次数

跳转到以红色突出显示的下一个错误/代码

当合并冲突处理是很常见的>>>>>>,并======插入由DCVS在语法上不正确的,我在和显示为红色高亮显示的文件.处理合并冲突时,让命令跳转到这些错误会很有用.当我输入时,:cnext我只收到消息"No Errors".这些是Mercurial合并冲突所以我不能使用Fugitive,但我通常更喜欢手工编辑合并冲突.

有没有办法跳转到文件中的下一个语法错误?我认为这些错误是由语法高亮文件决定的.

syntax vim keyboard-shortcuts merge-conflict-resolution

40
推荐指数
2
解决办法
3万
查看次数

对于连接表的array_agg,Postgres返回[null]而不是[]

我正在Postgres中选择一些对象及其标签.架构非常简单,有三个表:

对象 id

引用的Tagging id | object_id | tag_id

标签 id | tag

我正在加入这样的表,array_agg用于将标签聚合到一个字段中:

SELECT objects.*,
    array_agg(tags.tag) AS tags,
FROM objects
LEFT JOIN taggings ON objects.id = taggings.object_id
LEFT JOIN tags ON tags.id = taggings.tag_id
Run Code Online (Sandbox Code Playgroud)

但是,如果对象没有标签,Postgres会返回:

[ null ]
Run Code Online (Sandbox Code Playgroud)

而不是一个空数组.如果没有标签,如何返回空数组?我已经仔细检查过我没有返回null标签.

所述骨料文档说"聚结功能可用于在必要时代替零或空数组空".我试过COALESCE(ARRAY_AGG(tags.tag)) as tags但它仍然返回一个null数组.我试过让第二个参数很多东西(例如COALESCE(ARRAY_AGG(tags.tag), ARRAY()),但它们都会导致语法错误.

postgresql left-join database-normalization

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

git stash和pop show文件不再标记为已移动?

git mv file1 file2

git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   renamed:    file1 -> file2

git stash
git stash pop

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   file2
#
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." …
Run Code Online (Sandbox Code Playgroud)

git git-stash

35
推荐指数
2
解决办法
4468
查看次数

什么&hellip意味着/做什么(来自Java Generics常见问题解答)?

我正在阅读Java Generics常见问题解答,并遇到&hellip各种情况:

public interface Action<E extends Exception> { 
  void run() throws E ; 
} 
public final class Executor { 
  public static <E extends Exception> 
    void execute(Action<E> action) throws E {  
      &hellip; 
      action.run(); 
      &hellip; 
  } 
} 
public final class Test { 
  private static class TestAction implements Action<java.io.FileNotFoundException> { 
    public void run() throws java.io.FileNotFoundException { 
      &hellip; 
      throw new java.io.FileNotFoundException() ;  
      &hellip; 
  } 
  public static void main(String[] args) { 
    try {  
      Executor.execute(new TestAction()) ; 
    } catch (java.io.FileNotFoundException f) { …
Run Code Online (Sandbox Code Playgroud)

java

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

Git压缩所有提交在分支中没有冲突

对我们来说,一个常见的开发工作流程是checkout分支b,向它提交一堆,然后将所有这些提交压缩成一个(仍在b).

但是,在rebase -i压缩所有提交的过程中,经常会出现多个步骤的冲突.

我本质上希望将分支更改为一个提交,该提交表示最终提交时存储库的状态 b

我做了一些搜索,但我还没找到我正在寻找的东西.我不想,merge --squash因为我们想在合并之前测试压扁的功能分支.

git rebase squash

27
推荐指数
2
解决办法
9948
查看次数

Git命令行 - 知道是否在子模块中?

有没有办法在git中知道你是否在子模块中?您可以git submodule foreach在父目录中进行思考,但是如果您在子模块中的任何子目录中,或者在子模块内的任何子目录中,我似乎无法想出一个通用的方法来显示您在子模块中.

我想你可以找到repo root git rev-parse --show-toplevel,然后cd一个级别,然后再次查找该repo的根,然后将子模块列表与当前目录进行比较,但这看起来很粘...

git bash command-prompt git-submodules

20
推荐指数
3
解决办法
5708
查看次数

如何在NodeJS Sequelize中按查询计数组

在Rails中,我可以对模型的Likes数量执行简单的ORM查询:

    @records = Model
        .select( 'model.*' )
        .select( 'count(likes.*) as likes_count' )
        .joins( 'LEFT JOIN likes ON model.id = likes.model_id' )
        .group( 'model.id' )
Run Code Online (Sandbox Code Playgroud)

这会生成查询:

SELECT  models.*, count(likes.*) as likes_count
FROM "models" JOIN likes ON models.id = likes.model_id
GROUP BY models.id
Run Code Online (Sandbox Code Playgroud)

在Node Sequelize中,任何尝试类似操作的尝试都会失败:

return Model.findAll({
    group: [ '"Model".id' ],
    attributes: ['id', [Sequelize.fn('count', Sequelize.col('"Likes".id')), 'likes_count']],
    include: [{ attributes: [], model: Like }],
});
Run Code Online (Sandbox Code Playgroud)

这会生成查询:

SELECT
    Model.id,
    count(Likes.id) AS likes_count,
    Likes.id AS Likes.id           # Bad!
FROM Models AS Model
LEFT OUTER JOIN …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js sequelize.js

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