我想將道具傳遞給我的反應組件并具有一個功能,我可以在粗體和正常之間切換跨度的字體粗細。我的反應組件:ReactDOM.render( <div> <FontChooser min='4' max='40' size='16' text='Fun with React!' bold='false'/> </div>,document.getElementById('container'));我正在嘗試將bold = 'false'道具傳遞給組件的初始狀態,如下所示:class FontChooser extends React.Component { constructor(props) { super(props); this.state = { hidden: true, bold: this.props.bold, size: 16 } }然后我有這個功能toggleBold() { this.setState ({ bold: !this.state.bold }); }它應該呈現:render() { var weight = this.state.bold ? 'bold':'normal'; return( <div> <input type="checkbox" id="boldCheckbox" onChange={this.toggleBold.bind(this)} <span id="textSpan" style ={{fontWeight: weight, fontSize: this.state.size }}>. {this.props.text}</span> </div>我的問題是應該返回false,但三元運算符執行“粗體”,只有在為真this.props.bold時才應該執行。this.props.bold似乎它被this.props.bold視為真實值而不是虛假值,即使它在組件屬性中設置為 false。那么this.props當我們將它傳遞給組件狀態時總是返回一個真實值嗎?即使它在組件道具定義中設置為“假”?
當傳遞給組件狀態時,`this.props` 是否總是返回一個真實值?
長風秋雁
2022-10-13 16:05:43