Reactjs React.js呈现组件两个不同的元素

Reactjs React.js呈现组件两个不同的元素,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在将应用程序转换为React。在这种情况下,我需要能够将组件渲染到dom上的两个不同元素,我正在这样做: ReactDOM.render( <Provider store={store}> <Results /> </Provider> , document.getElementById('root')); ReactDOM.render( <Provider store={store}> <

我正在将应用程序转换为React。在这种情况下,我需要能够将组件渲染到dom上的两个不同元素,我正在这样做:

ReactDOM.render(
  <Provider store={store}>
    <Results />
  </Provider>
  , document.getElementById('root'));

  ReactDOM.render(
    <Provider store={store}>
      <Search />
    </Provider>
    , document.getElementById('root-search'));

我现在的问题是尝试在组件之间共享状态,我不知道为什么它不工作,因为我正在将提供者存储传递给这两个组件。一个更新,另一个不受影响

除非您有正当理由拥有多家店铺,否则建议您只使用一家

通过使用一个提供程序,可以实现组件的共享状态:

ReactDOM.render(
  <Provider store={store}>
    <div>
      <Results />
      <Search />
    </div>
  </Provider> ,
  document.getElementById('root')); 

如果不看到结果和搜索,很难说。作为补充说明,您使用两个不同的提供者组件有什么特别的原因吗?你不能简单地将搜索组件和结果组件包装到一个容器中吗?什么不起作用。将Dane store填充到不同的div应该可以工作,因为应用程序处于过渡阶段,而不是全部由react呈现。在这种情况下,我需要在标题中进行搜索,并在一些内容之后搜索结果。也许我做了一些完全错误的事情?它不是全部由react呈现的,包含其余的标记可能会有所帮助。这将有助于建议您是否可以修改您所采用的方法。呈现两个不同的组件树,并对它们使用相同的存储,这是一个完全有效的用例。就这一点而言,拥有两个不同的存储也是一种有效的方法,尽管这不是通常推荐的方法。@DavidTurton您不能在两个不同的存储之间共享redux状态。如果你想在他们之间分享国家,你必须按照派内达的话去做components@markerikson:虽然在两个不同的组件树之间共享存储是有效的,但考虑到OP之所以这样做是因为需要支持现有的标记非反应JS结构,这并不是一个很好的理由。