跳至主要内容
版本:v18.0.0

RelayEnvironmentProvider

RelayEnvironmentProvider

此组件用于在 React 上下文中设置 Relay 环境。通常,应在应用程序的最根部渲染单个此组件实例,以便为整个应用程序设置 Relay 环境。

const React = require('React');
const {
Store,
RecordSource,
Environment,
Network,
Observable,
} = require("relay-runtime");

const {RelayEnvironmentProvider} = require('react-relay');

/**
* Custom fetch function to handle GraphQL requests for a Relay environment.
*
* This function is responsible for sending GraphQL requests over the network and returning
* the response data. It can be customized to integrate with different network libraries or
* to add authentication headers as needed.
*
* @param {RequestParameters} params - The GraphQL request parameters to send to the server.
* @param {Variables} variables - Variables used in the GraphQL query.
*/
function fetchFunction(params, variables) {
const response = fetch("http://my-graphql/api", {
method: "POST",
headers: [["Content-Type", "application/json"]],
body: JSON.stringify({
query: params.text,
variables,
}),
});

return Observable.from(response.then((data) => data.json()));
};

/**
* Creates a new Relay environment instance for managing (fetching, storing) GraphQL data.
*/
function createEnvironment() {
const network = Network.create(fetchFunction);
const store = new Store(new RecordSource());
return new Environment({ store, network });
}

const environment = createEnvironment();

function Root() {
return (
<RelayEnvironmentProvider environment={environment}>
<App />
</RelayEnvironmentProvider>
);
}

module.exports = Root;

属性

  • environment:要在 React 上下文中设置的 Relay 环境。此提供程序组件后代中使用的任何 Relay Hooks(例如 useLazyLoadQueryuseFragment)都将使用此处指定的 Relay 环境。

此页面是否有用?

通过以下方式帮助我们使网站变得更好 回答几个简短的问题.