Reactjs 如何固定绑定元素';邮政';隐式具有';任何';类型.ts(7031)
我得到以下错误:绑定元素'post'隐式地具有'any'类型。ts(7031) 当我在映射帖子时: 此组件取自设置博客组件的指南。我已经把它改编成打字稿了。但我对React和打字都很陌生。一切都按预期进行只是我不确定如何使这行代码“typescript友好”。我尝试在.map中为post添加类型声明,但它会引发更多错误Reactjs 如何固定绑定元素';邮政';隐式具有';任何';类型.ts(7031),reactjs,typescript,gatsby,Reactjs,Typescript,Gatsby,我得到以下错误:绑定元素'post'隐式地具有'any'类型。ts(7031) 当我在映射帖子时: 此组件取自设置博客组件的指南。我已经把它改编成打字稿了。但我对React和打字都很陌生。一切都按预期进行只是我不确定如何使这行代码“typescript友好”。我尝试在.map中为post添加类型声明,但它会引发更多错误 .map(({ node: post }) => { blog.tsx type BlogProps = { data?: any; }; const BlogPa
.map(({ node: post }) => {
blog.tsx
type BlogProps = {
data?: any;
};
const BlogPage: React.FC<BlogProps> = (props) => {
const { edges: posts } = props.data.allMarkdownRemark;
return (
<Layout>
<Seo title="Blog" />
<div className="blog-posts container">
{posts
.filter((post: any) => post.node.frontmatter.title.length > 0)
.map(({ node: post }) => {
return (
<div className="blog-post-preview" key={post.id}>
<h1>
<Link to={post.frontmatter.path}>
{post.frontmatter.title}
</Link>
</h1>
<h2>{post.frontmatter.date}</h2>
<p>{post.excerpt}</p>
</div>
);
})}
</div>
</Layout>
);
};
这是我的graphql查询:
export const pageQuery = graphql`
query IndexQuery {
allMarkdownRemark(sort: { order: DESC, fields: [frontmatter___date] }) {
edges {
node {
excerpt(pruneLength: 250)
id
frontmatter {
title
date(formatString: "MMMM DD, YYYY")
path
}
}
}
}
}
`;
通过为
数据
属性指定定义良好的类型。例如:data:{allmarkdown备注:{edges:Array}}
您需要弄清楚节点应该是什么。我不知道你在用什么。我最终在一个界面中定义了节点-为问题添加了代码
export const pageQuery = graphql`
query IndexQuery {
allMarkdownRemark(sort: { order: DESC, fields: [frontmatter___date] }) {
edges {
node {
excerpt(pruneLength: 250)
id
frontmatter {
title
date(formatString: "MMMM DD, YYYY")
path
}
}
}
}
}
`;