如何从React Relay Container获取Component以获取静态变量?
从'./pages/home'导入主页;
console.log(Home.route)// undefined
我需要像Home.Component.route // object
这样的东西[ ? ] mysql
答案 0 :(得分:3)
我认为没有办法在没有做以下任何一种情况下静态得到它。
export
// In "Home.js":
export class HomeComponent extends React.Component {
static route = {
// ...
}
}
export default Relay.createContainer(HomeComponent, {
// ...
});
// In "Other.js":
import Home, {HomeComponent} from './Home.js';
console.log("should have access here", HomeComponent.route);
const HomeContainer = Relay.createContainer(
// ...
);
HomeContainer.route = {
// ...
};
export default HomeContainer;
一旦安装了容器并且您有一个对它的引用,您可以通过“component”ref获取原始组件。请注意,这没有记录,因此不能保证将来可以使用。
// In "Other.js":
render() {
return (
<Home
ref={
container => (
console.log(container.refs.component.route)
)
}
/>
);
}
显然,这是三种替代方案中最讨厌的,所以我可能不会推荐它。