React 组件可否像DOM那样遍历取值

React 组件可否像DOM那样遍历取值,第1张

遍历组件需要一个前提,就是你的组件都是通过map渲染出来的。

1、你有一个专门存储当前页面下组件各个配置参数的数据结构,通常是一个数组

var components = [

{coms_1},

{coms_2},

{coms_3},

]

2、定义一个function用来渲染你的组件,在函数内部写一个map将组件的数据结构传入函数,用switch判断组件的类型,然后每个类型渲染对应的组件,也就是你贴出来的那些组件代码,把参数传入组件。

yourComponents(components) {

var coms = componentsmap((result) => {

switch (resulttype) {

case "type1":

return <Com1 ref={resultid} {others} />

}

})

thiscoms = coms

return coms

}

3、需要注意的一点是这些组件需要传入一个组件id,因为你后面要map这些组件。

4、调用方式通过thisrefscomId。

首先,state 变化是异步的,更新 state 后不能马上读取到新的 state。

其次,你这个 list 是通过 props 传进来的,要在组件第二次渲染的时候才能拿到更新后的 listxnld。

实现原理:定义一个公共的数组 定义点击事件 使用map 遍历数组

以下形式的数组:键名可自己取。

要定义一个唯一值而且必须是字符串类型,作用是给遍历的标签绑定唯一的key值

遍历数组,

注:TabPane 的key属性的值必须是字符串

addTabs组件

你获取到数据后,然后调用setstate方法,改变状态,然后你的组件要定义个接受状态改变的地方,比如value={thisstate},一旦检测到你状态改变就会去render组件重新绘制,并且由于value的值和状态绑定所以value也会变。

比如如下代码:

父组件:

class Father extends Component {

construtor(props){

super(props);

thisstate={

name: 'Peter',

age: '26'

}

}

onChangeState(stateName){

thissetState(stateName)

}

render(){

<p>姓名:{thisstatename}</p>

<p>年龄:{thisstateage}</p>

<Child onClicked={thisonChangeStatebind(this)}/>

}

}

子组件:

class Child extends Component {

render(){

<Button onClicked={()=>thispropsonClicked({name: 'John'})}/>

}

}

1、首先,运行脚本npm run eject把webpack配置解封出来

注意:谨慎使用npm run eject,一旦解封无法还原

2、在scripts目录下找到分别对应开发、测试、生产环境的构建文件

测试

开发

最后,在项目逻辑中 consolelog(processenv) 即可

第1、2步骤同上。

3、添加自定义的根据环境变化的内容

startjs文件

testjs文件

buildjs文件

4、在项目中拿到环境值

通过 documentquerySelector('#title') 原生js的方式去拿到dom节点,然后去进行 *** 作。

但是需要值得一提的是,官方的refs将在未来的时间段内会被废除,并且因ref挂载的节点是挂载在组件实例上,因此函数不能使用es5的写法,如果使用es5的写法,需要bind去更改this指向,否则thisrefs拿到的将是undefined。

使用这种方式需要注意的是ReactDOM需要使用 import ReactDOM from 'react-dom' 提前引入进来,否则是找不到findDOMNode这个方法的。

前面涉及到 refs 即将被删除,因此,新版本 React 不推荐 使用ref string去 *** 作DOM,转而推荐我们使用 ref callback的使用方式,通过这种方式挂载到实例对象上面,只需要在回调函数中使用this属性名即可

Refs 是使用 ReactcreateRef() 创建的,并通过 ref 属性附加到 React 元素。在构造组件时,通常将 Refs 分配给实例属性,以便可以在整个组件中引用它们。当 ref 被传递给 render 中的元素时,对该节点的引用可以在 ref 的 current 属性中被访问。

ref 的值根据节点的类型而有所不同:

通过实现监听输入框的值以及将输入框的值追加到获取到的dom元素ul中去,在通过获取ul的子节点li,去给所有的li添加点击事件

以上就是关于React 组件可否像DOM那样遍历取值全部的内容,包括:React 组件可否像DOM那样遍历取值、react当前js怎么获得另外一个js start后的值、react 标签页tabs等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9638766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存