小编Bla*_*ne4的帖子

Apollo-client(反应) - 创建变异更新 - "无法在对象上找到字段基金({})(ROOT_QUERY)"

使用:"react-apollo":"^ 1.4.3"

在父组件中,我使用GraphQL查询具有子项'fundQuarterlyMetric'的父节点'Fund'.这将以以下格式返回数据:

{      
  id
  name
  ...
  fundQuarterlyMetrics (orderBy: asAtDate_ASC) {
    id
    year
    quarter
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试创建一个新的fundQuarterlyMetrics时,我必须使用更新功能(Apollo Client docs)更新react-apollo上的本地存储.它给了我一个错误:

   Can't find field Fund({}) on object (ROOT_QUERY) {
     "Fund({\"id\":\"cj57hpfips0x7014414u5tk8m\"})": {
     "type": "id",
     "id": "Fund:cj57hpfips0x7014414u5tk8m",
     "generated": false
    }
Run Code Online (Sandbox Code Playgroud)

问题是,当我在console.log代理时,我可以看到基金和它的孩子们的数据....不知道该怎么做..

更新以下评论:

这是父组件数据请求:

export const fundPageQuery = gql`
 query Fund($fundId: ID!) {
Fund(id: $fundId) {
  id
  name
  ....other variables
  fundQuarterlyMetrics (orderBy: asAtDate_ASC) {
    id
    year
    quarter
    ....other variables
  }
}
Run Code Online (Sandbox Code Playgroud)

};

以下是我使用的选项:

var optionsForCreateFundMetric = {
 update: (proxy, {data: {createFundMetrics}}) => …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs graphql react-apollo apollo-client

11
推荐指数
1
解决办法
1913
查看次数

Bootstrap下拉列表没有打开第一次点击React 16

使用以下内容:Bootstrap 4.0.0-beta.2,popper.js 1.13.0和React 16.0.0.我的React应用程序中有多个下拉按钮,并且在第一次单击时它们无法打开.第一次单击后,它们按预期工作,并在第一次单击时打开和关闭.有任何想法吗?

<div className="dropdown">
    <button type="button" className="btn btn-primary btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Edit</button>
    <div className="dropdown-menu dropdown-menu-right">
        <Link role="button" className="dropdown-item text-sm" to={path1}>Click me</Link>
        <Link role="button" className="dropdown-item text-sm" to={path2}>Click me</Link>
        <Link role="button" className="dropdown-item text-sm" to={path3}>Click me</Link>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我在app.jsx中加载的方式

//load bootstrap and app css
import Popper from 'popper.js';
window.Popper = Popper;
import 'bootstrap';
import 'style-loader!css-loader!sass-loader!applicationStyles';
Run Code Online (Sandbox Code Playgroud)

这就是我在webpack.config.js文件中加载bootstrap,jQuery和popper.js的方法

entry: [
    'script-loader!jquery/dist/jquery.min.js',
    'script-loader!popper.js/dist/umd/popper.min.js',
    'script-loader!bootstrap/dist/js/bootstrap.min.js',
    'babel-polyfill',
    './app/app.jsx',
],
externals: {
    jQuery: 'jQuery'
},
plugins: [
    // new BundleAnalyzerPlugin(),
    new webpack.ProvidePlugin({
        '$': 'jQuery',
        'jQuery': 'jQuery', …
Run Code Online (Sandbox Code Playgroud)

javascript jquery twitter-bootstrap reactjs

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