JavaScript语法反应路线

我要在这里做出反应路由器代码:modal-galleryJavaScript语法反应路线

和跨越这句法

const Modal = ({ match, history }) => { 

const image = IMAGES[parseInt(match.params.id, 10)]

if (!image) {

return null

}

const back = (e) => {

e.stopPropagation()

history.goBack()

}

return (

<div

onClick={back}

style={{

position: 'absolute',

top: 0,

left: 0,

bottom: 0,

right: 0,

background: 'rgba(0, 0, 0, 0.15)'

}}

>

<div className='modal' style={{

position: 'absolute',

background: '#fff',

top: 25,

left: '10%',

right: '10%',

padding: 15,

border: '2px solid #444'

}}>

<h1>{image.title}</h1>

<Image color={image.color} />

<button type='button' onClick={back}>

Close

</button>

</div>

</div>

)

}

我的问题是,什么样的语法是这样来的?并且如何将其转换为ES6 React.Component class

回答:

它是一个无状态作出反应功能部件(阵营SFC)。这是一个功能,而不是一个班级。

基本上你不需要/不得不将它转换成React.Component类,因为它是声明React.Component的有效方法。

SFC通常被称为愚蠢组件,因为它只关心传递给它的道具,但没有别的。它是一个纯粹的组件(它不应该有任何内部状态),也不应该从其生命周期函数中产生任何副作用。

React建议如果您不需要内部状态,也不需要组件的生命周期方法,则应该将其作为SFC编写。

你可以有进一步的看这里:

https://reactjs.org/docs/components-and-props.html

回答:

这是一个纯函数。你可以把它看作React.Componentrender函数。

转换那么容易,只需将代码粘贴里面渲染功能:

class Modal extends React.Component { 

render() {

const { match, history } = this.props; // Here you get your props

const image = IMAGES[parseInt(match.params.id, 10)]

if (!image) {

return null

}

const back = (e) => {

e.stopPropagation()

history.goBack()

}

return (

<div

onClick={back}

style={{

position: 'absolute',

top: 0,

left: 0,

bottom: 0,

right: 0,

background: 'rgba(0, 0, 0, 0.15)'

}}

>

<div className='modal' style={{

position: 'absolute',

background: '#fff',

top: 25,

left: '10%',

right: '10%',

padding: 15,

border: '2px solid #444'

}}>

<h1>{image.title}</h1>

<Image color={image.color} />

<button type='button' onClick={back}>

Close

</button>

</div>

</div>

)

}

}

以上是 JavaScript语法反应路线 的全部内容, 来源链接: utcz.com/qa/260843.html

回到顶部