Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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
Javascript 递归渲染组件时,React redux未拾取状态_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 递归渲染组件时,React redux未拾取状态

Javascript 递归渲染组件时,React redux未拾取状态,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我面临一个问题,组件问题未正确接收来自react redux存储的数据。当组件最初呈现时,它从存储区接收到所需的数据,没有问题。当问题变成子问题时,问题就会出现——在这种情况下,存储区中的数据不会被检索,而是未定义,尽管它是相同的代码。下面可以看到子问题代码,它在同一个问题组件中呈现一个新的问题组件。此递归呈现的组件未接收到正确的状态 初始呈现代码片段如下所示,放置在问题的外部组件中: <div style={{ paddingRight: '8px' }}> {data.Que

我面临一个问题,组件
问题
未正确接收来自react redux存储的数据。当组件最初呈现时,它从存储区接收到所需的数据,没有问题。当问题变成子问题时,问题就会出现——在这种情况下,存储区中的数据不会被检索,而是未定义,尽管它是相同的代码。下面可以看到子问题代码,它在同一个
问题
组件中呈现一个新的
问题
组件。此递归呈现的组件未接收到正确的状态

初始呈现代码片段如下所示,放置在
问题
的外部组件中:

<div style={{ paddingRight: '8px' }}>
  {data.Question.map(question => (
    <Question question={question} key={question.ID} />
  ))}
</div>

问题
本身无法访问存储。通过使用
connect
创建一个新组件,该组件可以访问存储。您确实在文件末尾使用了connect,并且导出了连接的组件,因此就代码库的其余部分而言,一切都很好。但是在这个特定的文件中,对
的任何引用都是指未连接的组件

或许可以这样做:


class Question extends React.Component {
  // ... later, in render
  question.SubQuestion.map(subQuestion => (
    <ConnectedQuestion question={subQuestion} key={subQuestion.ID} subQuestion={true}/>
  ))
}

const ConnectedQuestion = connect(
  mapStateToProps,
  mapDispatchToProps
)(Question);

export default ConnectedQuestion;

类问题扩展了React.Component{
//…稍后,在渲染中
问题.子问题.映射(子问题=>(
))
}
const ConnectedQuestion=connect(
MapStateTops,
mapDispatchToProps
)(问题);
导出默认连接问题;

如果您可以添加一个带有Subquestions对象的示例问题,我认为这会有所帮助

class Question extends React.Component {
  // ... later, in render
  question.SubQuestion.map(subQuestion => (
    <ConnectedQuestion question={subQuestion} key={subQuestion.ID} subQuestion={true}/>
  ))
}

const ConnectedQuestion = connect(
  mapStateToProps,
  mapDispatchToProps
)(Question);

export default ConnectedQuestion;