草庐IT

prop-types

全部标签

javascript - React props : Should I pass the object or its properties? 有多大区别?

在传递props时,我应该将整个对象传递给子组件,还是应该先在父组件中单独创建props,然后再将这些props传递给子组件?传递整个对象:首先单独创建需要的Prop:哪个是首选,如果它取决于,我应该使用什么作为衡量标准来使用其中一个? 最佳答案 根据theprincipleofleastprivilege,这是正确的方法:这会限制InnerComponent意外修改原始对象或访问不适合它的属性。或者,可以从原始对象中选取属性并将其作为Prop传递:如果有许多属性难以列出,可能只有一个prop接受一个对象:

javascript - nextProps 始终与 componentWillReceiveProps 中的 this.props 相同,即使 props 已更改

我的React应用程序中有一个组件可以为用户呈现总值。当该值上升时,我想发出声音。我认为在显示总数的组件中是播放噪音的好地方。所以我在组件中添加了一个componentWillReceiveProps方法,在其中,我计算了两个总数:total是从this.props计算的nextTotal是根据nextProps计算的。令我惊讶的是,即使值发生变化,总计也发生变化,nextTotal和total始终相同。所以我想在总数上升时开火的条件永远不会发生。我编写了一个简单的单组件示例。JSfiddle.varHello=React.createClass({componentWillRecei

javascript - 使用 Props React 设置标题级别

只是想知道是否有通过将Prop向下传递给基本组件来设置标题级别的方法。例子:基础组件classHeadingextendsComponent{render(){return({this.props.title});}}exportdefaultHeading;父组件(传递属性)classHomeHeaderextendsComponent{render(){return()}}exportdefaultHomeHeader;当我尝试这样做时,出现语法错误。 最佳答案 是的!使您的标签成为变量的方法如下:render(){constT

javascript - 如果子组件的 props 没有改变,React 还会重新渲染它吗?

假设我在React中有以下父子组件对:varChildComponent=React.createClass({getDefaultProps:function(){return{a:'a',b:'b',c:'c'}},render:function(){return(/*jshintignore:start*/{this.props.c}/*jshintignore:end*/);}});varParentComponent=React.createClass({componentDidMount:function(){//After10seconds,changeaproperty

javascript - react : Passing functions as props

我有一个关于将函数作为props传递的问题。在tic-tac-toe教程(https://facebook.github.io/react/tutorial/tutorial.html)最后,Game组件按如下方式传递onClick处理程序:this.handleClick(i)}/>首先,为什么我们不能像这样传递函数:onClick={this.handleClick(i)}我知道传递“i”很重要,但教程中间的一些东西让我感到困惑:returnthis.handleClick(i)}/>;这里我们没有在箭头函数的括号中传递“i”。我不想写太多以使问题不那么冗长。我相信有些人已经完成了

javascript - 了解 VueJS 中的组件 Prop

我正在通过关注laracasts系列网络广播来试用vuejs。在https://laracasts.com/series/learning-vue-step-by-step/episodes/8,JefferyWay讨论自定义组件。我有以下基于他的截屏的代码:{{task.t}}vue.component('tasks',{template:'#tasks-template',props:['list']//whynotprops:['tasks']??});newVue({el:'#app',data:{tasks:[{t:'gotodoctor',c:false},{t:'goto

go - 如何将 []*type 传递给函数?

我在Golang中有一个方法需要一个[]*type作为参数。我有一片:s:=make([]myType,3)我该怎么做? 最佳答案 简而言之(正如其他评论者所暗示的那样),听起来您是在询问如何使用Go不支持的功能。即,泛型:具有签名[]*type的函数,其中type实际上不是您已经定义的特定具体类型。虽然这可能在未来得到支持,但现在还不行——你现在只能用[]*specific-concrete-type定义函数。 关于go-如何将[]*type传递给函数?,我们在StackOverflo

string - 无法在字符串 : "cannot use <xxx> (type <yyy>) as type string in map index" 的映射中使用基础类型的字符串

这个问题在这里已经有了答案:ConvertingacustomtypetostringinGo(4个答案)关闭3年前。我有底层字符串类型:typeCapabilitystring。我想将它用作字符串映射中的字符串,但出现错误:cannotusecap(typeCapability)astypestringinmapindex这是我的代码:packagemainimport("fmt")typeCapabilitystringvarcaps_list=map[string]int{"HOME":1,}funcmain(){varcapCapability//stringcap="HOME

go - 为什么不能在赋值中使用 (type func(string)) 作为 type func(interface{})

这个问题在这里已经有了答案:Typefuncwithinterfaceparameterincompatibleerror(1个回答)Funcwithinterfaceargumentnotequalstofuncwithstringargument.Why?(1个回答)Gofunctiontypesthatreturnstructsbeingusedwithinterfaces(2个答案)PassinganarbitraryfunctionasaparameterinGo(4个答案)Howtoconvertfrom`func()*int`to`func()interface{}`?[

go - 如何通过 (type *common.MapStr) 来输入 []byte?

对不起,如果这个问题太新手,因为我昨天才开始学习围棋。我尝试将publishEvent转换为字节,编译器显示如下错误:cannotconvertpublishEvent(type*common.MapStr)totype[]byte谁能给我指路?谢谢。varparsedmap[string]interface{}bytes:=[]byte(publishEvent)--->Erroroccurhereerr:=json.Unmarshal(bytes,&parsed)iferr!=nil{fmt.Println("error:",err)} 最佳答案