graphqlを使用するためにRelayを使用して反応ネイティブアプリケーションを開発しています。 以前のバージョンでは、「sibelius」react-native-relay-exampleの次の2つの投稿「first」および「 second」と組み合わせて、RootContainerとレンダラを使用したRelayクラシックを使用していました。react-relayモダンでgraphqlをロードする際のエラー
リアリレーのバージョンを0.10.0から1.0.0に変更しました。まず、リレーの最新の実装を使用して、最初の画面で簡単なクエリを入力します。私はbabel-relay-pluginを変更しなかった。これまでに私はアプリを実行するときgraphql: Unexpected invocation at runtime. Either the Babel transform was not set up, or it failed to identify this call site. Make sure it is being used verbatim as 'graphql'
私はまた、反応ネイティブアプリケーションを開発する際の初心者であり、graphqlを使用しているので、私はいつも知っていると思われるドキュメントに記載されていない何かが不足していると感じています。反応する。
これは私の.babelrcファイルです:私はQueryRendererにインポートしていますRelayEnvironmentを作成してい
{
"plugins": ["./data/babelRelayPlugin"],
"presets": ["react-native"]
}
babelRelayPlugin.js
const getBabelRelayPlugin = require('babel-relay-plugin');
const schemaData = require('./schema.json');
module.exports = getBabelRelayPlugin(schemaData.data);
:
import {
Environment,
Network,
Store,
RecordSource
} from 'relay-runtime';
const fetchQuery = (operation, variables, cacheConfig, uploadables) => {
return (
fetch('https://../graphql', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
query: operation.text,
variables,
}),
}).then(response => {
return response.json();
}).catch(err => console.log(err))
);
}
const source = new RecordSource();
const store = new Store(source);
const network = Network.create(fetchQuery);
const handlerProvider = null;
export const RelayEnvironment = new Environment({
handlerProvider,
network,
store,
});
ですjsxのQueryRenderer:
<QueryRenderer
environment={ RelayEnvironment }
query={ graphql`query {
content(path: "/latest-updates"){
title
children{
entries{
key: id
title
flyTitle
teaser
mainImageObj{
path
}
}
}
}
}` }
render={ ({error, props}) => {
if(error){
console.log(error);
} else if(props) {
console.log(props);
return <Text> Done </Text> ;
} else {
console.log('loading...');
}
}}
/>
私はgraphiqlでこのクエリを実行すると、私は期待される結果を得ます。
.graphqlファイルである必要がありますか、schema.jsを使用できますか? – parohy
@parohy JSONファイルにすることもできますが、エクスポートした '.js'ファイルにすることはできません。 – whitep4nther
JSスキーマを '.graphql'スキーマに変換する' printSchema'(http://graphql.org/graphql-js/utilities/#printschema)を見てください – whitep4nther