Reactjs 如何使用函数通过post id获取特色媒体

Reactjs 如何使用函数通过post id获取特色媒体,reactjs,ecmascript-6,wordpress-gutenberg,gutenberg-blocks,Reactjs,Ecmascript 6,Wordpress Gutenberg,Gutenberg Blocks,我正在处理一个Gutenberg自定义块,但我正在尝试使用该函数通过post id获取特色媒体。这对我不起作用。下面的代码有什么问题。 我说不通。需要一点帮助 const getFeaturedMediaById = (featuredMediaId) => { const media = useSelect( ( select ) => featuredMediaId && select( 'c

我正在处理一个Gutenberg自定义块,但我正在尝试使用该函数通过post id获取特色媒体。这对我不起作用。下面的代码有什么问题。 我说不通。需要一点帮助

const getFeaturedMediaById = (featuredMediaId) => {
        const media = useSelect(
            ( select ) =>
                featuredMediaId && select( 'core' ).getMedia( featuredMediaId ),
            [ featuredMediaId ]
        );
            return media;
};
const featured_media = getFeaturedMediaById(100);
控制台错误:

Uncaught Error: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings. 
    at Object.S (react-dom.min.js?ver=16.9.0:78)
    at useCallback (react.min.js?ver=16.9.0:31)
    at Module.Fe (data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2)
    at getFeaturedMediaById (<anonymous>:2:35)
    at <anonymous>:1:1
未捕获错误:缩小的反应错误#321;参观https://reactjs.org/docs/error-decoder.html?invariant=321 获取完整消息,或使用非小型开发环境获取完整错误和其他有用警告。
在Object.S(react dom.min.js?ver=16.9.0:78)
使用回调时(react.min.js?ver=16.9.0:31)
在Module.Fe处(data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2)
在getFeaturedMediaById(:2:35)
时间:1:1

您的代码语法很好,我怀疑问题可能是媒体id“100”不存在或受到限制

由于控制台错误来自缩小版的JavaScript,因此从以下位置进行调试是“挑战性的”

为了使调试更容易,方法是在处理项目(和调试)时使用
npm start
,然后使用
npm run build
进行最终的生产就绪(小型化)构建

如果媒体id有问题,使用
npm start
时,您会看到以下错误记录到浏览器控制台:

api-fetch.min.js?ver=... GET http://example.site/wp-json/wp/v2/media/100?context=edit&_locale=user 404 (Not Found)
...
Uncaught (in promise) 
{code: "rest_post_invalid_id", message: "Invalid post ID.", data: {…}}
  code: "rest_post_invalid_id"
  data: {status: 404}
  message: "Invalid post ID."
  __proto__: Object
或者,可能是在REST API请求/承诺完成之前,您正试图在
render()
中显示
特色媒体。如果上述两项都正常,则可能是您正在尝试渲染
特色_媒体
的对象,尽管您可以使用
控制台.log(特色_媒体)
以查看返回的对象


尝试使用上述步骤在控制台中生成一个未缩小的错误,或者通过使用另一个已知id进行测试来确认媒体id是否存在问题。如果不是前两个,请查看其呈现的时间/方式。

您的代码语法很好,我怀疑问题可能是媒体id“100”不存在或受到限制

由于控制台错误来自缩小版的JavaScript,因此从以下位置进行调试是“挑战性的”

为了使调试更容易,方法是在处理项目(和调试)时使用
npm start
,然后使用
npm run build
进行最终的生产就绪(小型化)构建

如果媒体id有问题,使用
npm start
时,您会看到以下错误记录到浏览器控制台:

api-fetch.min.js?ver=... GET http://example.site/wp-json/wp/v2/media/100?context=edit&_locale=user 404 (Not Found)
...
Uncaught (in promise) 
{code: "rest_post_invalid_id", message: "Invalid post ID.", data: {…}}
  code: "rest_post_invalid_id"
  data: {status: 404}
  message: "Invalid post ID."
  __proto__: Object
或者,可能是在REST API请求/承诺完成之前,您正试图在
render()
中显示
特色媒体。如果上述两项都正常,则可能是您正在尝试渲染
特色_媒体
的对象,尽管您可以使用
控制台.log(特色_媒体)
以查看返回的对象

尝试使用上述步骤在控制台中生成一个未缩小的错误,或者通过使用另一个已知id进行测试来确认媒体id是否存在问题。如果前两个id都不是,请查看其呈现时间/方式