当前位置: 首页 > 面试题库 >

React错误(只有ReactOwner可以具有引用。)

濮阳翔
2023-03-14
问题内容

我刚刚使用‘React-rails’在我的rails项目中安装了一个新的反应,并在其之上添加了searchkit。但是我遇到了一些错误。

未捕获的不变违规:addComponentAsRefTo(…):只有ReactOwner可以具有引用。您可能正在向未在组件render方法内部创建的组件添加引用,或者您已加载多个React副本。

app / assets / javascripts / components / search.js.jsx

const host = "http://demo.searchkit.co/api/movies"
const sk = new Searchkit.SearchkitManager(host, {})

var Search = React.createClass({
  render: function() {
    const SearchkitProvider      = Searchkit.SearchkitProvider;
    const Searchbox              = Searchkit.SearchBox;
    const Hits                   = Searchkit.Hits;
    const NoHits                 = Searchkit.NoHits;
    const HitsStats              = Searchkit.HitsStats;
    const Layout                 = Searchkit.Layout;
    const LayoutBody             = Searchkit.LayoutBody;
    const LayoutResults          = Searchkit.LayoutResults;
    const SearchBox              = Searchkit.SearchBox;
    const TopBar                 = Searchkit.TopBar;
    const SideBar                = Searchkit.SideBar;
    const ActionBar              = Searchkit.ActionBar;
    const ActionBarRow           = Searchkit.ActionBarRow;
    const HierarchicalMenuFilter = Searchkit.HierarchicalMenuFilter;
    const RefinementListFilter   = Searchkit.RefinementListFilter;
    const SelectedFilters        = Searchkit.SelectedFilters;
    const ResetFilters           = Searchkit.ResetFilters;
    const MovieHitsGridItem      = Searchkit.MovieHitsGridItem;

    return (<div>
      <SearchkitProvider searchkit={sk}>
        <Layout>
          <TopBar>
            <SearchBox autofocus={true} searchOnChange={true} prefixQueryFields={["actors^1","type^2","languages","title^10"]}/>
          </TopBar>
          <LayoutBody>
            <SideBar>
              <HierarchicalMenuFilter fields={["type.raw", "genres.raw"]} title="Categories" id="categories"/>
              <RefinementListFilter id="actors" title="Actors" field="actors.raw" operator="AND" size={10}/>
            </SideBar>
            <LayoutResults>
              <ActionBar>
                <ActionBarRow>
                  <HitsStats/>
                </ActionBarRow>
                <ActionBarRow>
                  <SelectedFilters/>
                  <ResetFilters/>
                </ActionBarRow>
              </ActionBar>
              <Hits mod="sk-hits-grid" hitsPerPage={10} itemComponent={MovieHitsGridItem} sourceFilter={["title", "poster", "imdbId"]}/>
              <NoHits/>
            </LayoutResults>
          </LayoutBody>
        </Layout>
      </SearchkitProvider>
    </div>);
  }
});

React还是很新的东西,所以不太确定为什么会出现这些问题?

谢谢


问题答案:

好的,我只是浏览了这个Searchkit库。基于它是一个React组件并且您正在使用的事实react- rails,几乎可以肯定您遇到了一次拥有两个React实例的问题。react- rails缺点是难以与其集成外部库。它可以快速设置和开始使用,但是一旦您要安装其他React库,就会遇到麻烦。

我之前遇到过这个问题,而我所做的是改为使用
https://github.com/netguru/react_webpack_rails。如果您想要更多一点,请查看https://github.com/shakacode/react_on_rails。这两个选项需要花费更多的精力来设置,但是如果您对React及其生态系统很认真的话,这是非常值得的。

顺便说一句:Searchkit看起来很棒!



 类似资料:
  • 我试着用pylot来模拟单摆。为此,我创建了类钟摆,在其中一个方法中,我不断得到相同的错误。 错误代码为: 文件“C:\Users\Lucas\Anaconda3\envs\Spyder\lib\site packages\numpy\core\fromnumeric.py”,第47行,在_wrapitresult=getattr(asarray(obj),method)中(*args,**kwd

  • 我正在使用Python 3.6。3号巨蟒。我正在努力: 然后出现了这个错误: 只有整数标量数组可以转换为标量索引 我查看了地图: 所以我想我正确地使用了。只是不确定如何显示地图结果。

  • 当我想将Text设置为text View时,应用程序力关闭并给我这个错误: android.view.ViewRootImpl$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。 这是我的代码的一部分: 有一个按钮;如果用户单击它,它会调用一个函数来设置,线程会检查body_num==10

  • 问题内容: select SUM (Bill) from ProductSaleReport group by PCI having MONTH(Date) between 1 and 3 有人可以帮我发现问题吗? 我得到了错误: 消息8121,级别16,状态1,行1 列“ ProductSaleReport.Date”在HAVING子句中无效,因为它既不包含在聚合函数中也不在GROUP BY子句

  • 和 现在我想对数组进行矢量化,以便将它们打印在一起。我尽量 或 它给出了TypeError:只有整数标量数组才能转换为标量索引

  • 问题内容: 有什么方法可以使用Animation在Android的项目中使用WindowManager扩展视图吗?即使使用网站中的示例,我也做不到!我使用了许多示例,但没有一个有效! 问题答案: 我不确定您的任务的确切要求,但是有两种方法可以向窗口提供动画: 用法如下: 添加附加的“容器”视图,因为它不是真实的,因此添加视图的普通动画无法使用。已经问过这个问题,但是缺少代码。我将通过以下方式应用它