Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 中的组件不进行渲染,尽管具有键属性_Reactjs_React Redux - Fatal编程技术网

Reactjs 中的组件不进行渲染,尽管具有键属性

Reactjs 中的组件不进行渲染,尽管具有键属性,reactjs,react-redux,Reactjs,React Redux,我是一个新的反应,这是我与Redux的第一个项目 我获取一些数据并将其设置在状态树中。当my reducerADD\u PRODUCTS\u TO\u CART运行时,myPRODUCTS->render()会运行,但Product->render()不会运行,尽管有一个键 这里有一个要点,这是我能概括为的最基本的要点。希望它有意义,我已经包含了一个表示树状态的文件,以便您可以查看数据结构 TLDR:基本上,股票在状态树中递减,但不呈现。我做错了什么 更新:我在所有渲染方法中都加入了conso

我是一个新的反应,这是我与Redux的第一个项目

我获取一些数据并将其设置在状态树中。当my reducer
ADD\u PRODUCTS\u TO\u CART
运行时,my
PRODUCTS->render()
会运行,但
Product->render()
不会运行,尽管有一个键

这里有一个要点,这是我能概括为的最基本的要点。希望它有意义,我已经包含了一个表示树状态的文件,以便您可以查看数据结构

TLDR:基本上,股票在状态树中递减,但不呈现。我做错了什么

更新:我在所有渲染方法中都加入了
console.log()
,以查看调用了什么。当我减少产品库存时,产品不会被调用。这很可能是由于我正在做的
.map(()=>)
造成的。我尝试更改我的
key={}
属性以包括如下股票:

.map((obj)=>)

这似乎有效。但我知道这有多稳定

Update2:似乎如果我把我的
data={}
属性放在像这样的单独属性中
渲染
产品的功能中
您得到:

if (data.Variations) { //TODO: Variation logic
    return false;
}
因为在
data
中,您得到了
Variations
参数,它通过了这个范围(因为
Variations
不是
null
未定义的
),并返回null而不是呈现组件


删除
return false
,您的代码应该可以正常工作。

就像@kiarashws所说的,只要在
render()
方法中
return false
,它就不会渲染。确保不要仅在不想渲染时渲染

常见的代码如下所示:

render() {
   if (props.shouldNotRender) 
      return null or false;

   return <div>
      ...
   </div>
}
render(){
如果(道具不应渲染)
返回null或false;
返回
...
}

您的道具在产品中的价值是什么?您好。我已经删除了数据。不幸的是,它不起作用。此外,我在render方法中加入了
console.log()
。我知道产品的
render
方法中没有调用
product->render()。下面是
将产品添加到购物车
操作之前和之后的转储:请注意,为了这个要点,我将代码改回了
。使其与问题相关。