我可以更新道具的状态吗

Can I update the state of a prop

我是 React 新手。我们可以改变道具的状态吗?例如,我有 2 段代码

App.js

import React, { useState } from 'react' 
import Print from '../components/Print/print'

const [text, setText] = useState("Hi");

<Print text = {text} />

print.js

import React, { useState } from 'react'

const Print = (props) => {
    return(
            <p>props</p>
   )

export default Print

有没有办法改变道具的状态,即使用 print.js 中的 useState() 来更新状态。例如,我们可以在 print.js 中做类似 setText(prop) 的事情吗?如果不是这样,那么您将如何触发 App.js 中变量 techprint.js 的状态更改?

你可以试试这个

  • 通过 props
  • 在 print.js 中传递文本和 setText
  • 然后使用setText更新组件的状态

您不能也不应该尝试直接在子组件中更改道具的状态或值。要更改 props,您可以将函数作为 prop 传递,然后将新值发送给该函数。因此该函数会将您的道具更改为父组件,并将进一步传递给它的子组件。

<Print text = {text} changeText = {(newVal) => setText(newVal)}/>

然后在您的子组件中使用新值调用此 changeText 函数。

 return (
   <>
    <p>{props.text}</p>
    <div onClick={props.changeText('Hello')}>Change Text</div>
   </>
 );

仅供参考,{props} 是一个数组,您可以通过 {props.text}

访问文本