react动态修改css的样式,class多个类名的写法,ref,useRef的使用,父组件拿到子组件当中的引用,标签中定义两个类名的时候如何写样式

其实一个标签中class中有两个名字,我们就可以理解为引用了两个类名的样式。前后可能会影响样式的覆盖。而不是理解为我定义了一个叫做两个类名连接起来组合成了一个新的名字。也可以这样理解。这不就相当于我们把多个类名相同的样式写到了一块了嘛

在这里插入图片描述

在这里插入图片描述
也可以通过三元表达式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述上面的input应该写一个ref

下面是父组件拿到子组件当中的引用
在这里插入图片描述

React组件可以通过不同的方式获取组件的回调函数。 方法一:通过props传递回调函数 在组件定义一个函数,并将该函数作为props传递给组件组件在适当的时机调用该函数,从而实现组件获取组件的回调。 ```jsx // 组件 import React, { Component } from 'react'; import Child from './Child'; class Parent extends Component { handleChildEvent = (childInstance) => { // 在组件获取组件的实例 console.log(childInstance); // 调用组件的方法 childInstance.sendMessage(); } render() { return ( <div> <Child onChildEvent={this.handleChildEvent} /> </div> ); } } export default Parent; ``` ```jsx // 组件 import React, { Component } from 'react'; class Child extends Component { componentDidMount() { // 在组件完成挂载时,将组件的实例作为参数传递给组件的函数 this.props.onChildEvent(this); } sendMessage = () => { console.log('sending message'); } render() { return ( <span>Child</span> ); } } export default Child; ``` 方法二:使用React.createRef() 在组件使用React.createRef()创建一个ref对象,并将该ref对象传递给组件组件通过useImperativeHandle将自己的方法暴露给组件。 ```jsx // 组件 import React, { useRef } from 'react'; import Child from './Child'; const Parent = () => { const childRef = useRef(null); const handleChildEvent = () => { // 在组件调用组件的方法 childRef.current.sendMessage(); } return ( <div> <Child onRef={childRef} /> <button onClick={handleChildEvent}>Call Child Method</button> </div> ); } export default Parent; ``` ```jsx // 组件 import React, { useImperativeHandle, forwardRef } from 'react'; const Child = forwardRef((props, ref) => { const sendMessage = () => { console.log('sending message'); } // 将组件的方法暴露给组件 useImperativeHandle(ref, () => ({ sendMessage })); return ( <span>Child</span> ); }); export default Child; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值