gpt4 book ai didi

javascript - 类型 IntrinsicAttributes 和字符串 [] 上不存在属性 'props'

转载 作者:行者123 更新时间:2023-12-05 00:31:12 25 4
gpt4 key购买 nike

我不知道为什么我会收到错误:

TypeScript error in /home/amanuel2/tutorial/go/react-go/src/frontend/src/App.tsx(34,15):
Type '{ props: string[]; }' is not assignable to type 'IntrinsicAttributes & string[]'.
Property 'props' does not exist on type 'IntrinsicAttributes & string[]'. TS2322
代码:
function App() {

const [ChatHistory, setChatHistory] = useState<string[]>([])
useEffect(() => {
connect((msg: string) => {
console.log("New Message")
setChatHistory([...ChatHistory, msg])
})
console.log(ChatHistory)
return () => { }
}, [])



return (
<div className="App">
<Header />
<header className="App-header">
<Chat props={ ChatHistory }/>
<button type="submit" onClick={()=>sendMsg("Hello")}>
Hello
</button>
</header>
</div>
);
}
const Chat = (props: string[]) => {
const msgs = props.map((msg:any, idx:any) => (
<p key={ idx }>
{ msg }
</p>
))
return (
<div className="ChatHistory">
<h3> Chat History </h3>
{ msgs }
</div>
)
}

最佳答案

您的电话 <Chat props={ ChatHistory }/>通过类型 { props: string[] }作为第一个参数(称为 props )到 Chat组件,但 Chat预计为 string[] ,(来自 const Chat = (props: string[]) => {)。
相反,您可以更改 Chat 的 props 的预期类型:

const Chat = (props: {props: string[]})
现在,这不是很好的风格,因为名称 props应该只用于指定该对象中的所有属性。
因此,您可以重命名 ChatHistory传递给 Chat 的 Prop :
render() {
// ...
<Chat chatHistory={ChatHistory}/>
}

// ...
const Chat = (props: {chatHistory: string[]}) {
props.chatHistory.map( // ...
}

关于javascript - 类型 IntrinsicAttributes 和字符串 [] 上不存在属性 'props',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65277539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com