Reactjs 如何设置状态变量的初始值

Reactjs 如何设置状态变量的初始值,reactjs,react-hooks,Reactjs,React Hooks,表示“useState()钩子的唯一参数是初始状态。” 我认为这意味着useState接受一个参数,该参数是初始状态。这似乎不正确,所以我的问题是如何设置状态变量的初始值?在下面的代码行中,消息始终为空字符串,即使我将其设置为有效的字符串值 const [message, setMessage] = useState(props.message); 主机组件(props.message)向我的对话框传递一个字符串。我想将该字符串分配给状态变量(message),然后在用户想要关闭对话框时分配m

表示“useState()钩子的唯一参数是初始状态。”

我认为这意味着useState接受一个参数,该参数是初始状态。这似乎不正确,所以我的问题是如何设置状态变量的初始值?在下面的代码行中,消息始终为空字符串,即使我将其设置为有效的字符串值

const [message, setMessage] = useState(props.message);
主机组件(
props.message
)向我的对话框传递一个字符串。我想将该字符串分配给状态变量(
message
),然后在用户想要关闭对话框时分配
message
空字符串

Dialog.tsx

function Dialog(props: any) {
    var dummy = props.message;                                 // "foo"
    const [message, setMessage] = useState(props.message);     // set initial state     
    dummy = message;                                           // "" - expected "foo"

    const handleClose = () => setMessage('');

    return (
        <>
            <Modal show={message.length > 1} onHide={handleClose}>
                <Modal.Header closeButton>
                    <Modal.Title>Information</Modal.Title>
                </Modal.Header>
                <Modal.Body>{message}</Modal.Body>
                <Modal.Footer>
                    <Button variant="primary" onClick={handleClose}>
                        Ok
                    </Button>
                </Modal.Footer>
            </Modal>
        </>
    );
}
函数对话框(道具:任意){
var dummy=props.message;//“foo”
const[message,setMessage]=useState(props.message);//设置初始状态
dummy=message;/“”-应为“foo”
const handleClose=()=>setMessage(“”);
返回(
1} onHide={handleClose}>
问询处
{message}
好啊
);
}

什么是
dummy
?您是说要将props.message设置为useState中的值
message
?另外,在使用状态之前检查
props.message
的值我正在使用
dummy
来说明
props.message
实际上有一个值,并且
message
没有设置为该值。
useState(value)
在第一次渲染时仅设置一次状态。例如,您可以
console.log(props.message)
。我猜它会被记录不止一次,第一次它是一个空字符串。