假设我们有一个名为ThreeModule
的react组件,它非常聪明地在一行中显示了三个Arbityle react组件(甚至只是任意定义的dom元素)。
我们可以通过将react元素设置为状态元素并将它们作为属性传入来实现这一点,如下面的答案所建议的:
class ModA extends React.Component{
render () {
return <div> this is ModA</div>
}
}
class ModB extends React.Component{
render () {
return <div> this is ModB</div>
}
}
class ModC extends React.Component{
render () {
return <div> this is ModC</div>
}
}
class ThreeMod extends React.Component{
render() {
return (<div className = "ThreeMod">
This is ThreeMod
<div className ="left">
{this.props.moda}
</div>
<div className ="middle">
{this.props.modb}
</div>
<div className ="right">
{this.props.modc}
</div>
</div> );
}
}
class App extends React.Component {
constructor() {
super();
this.state = {
moda: <ModA/> ,
modb: <ModB/> ,
modc: <ModC/>
}
}
render() {
function getRandomMod() {
let rand =Math.floor(Math.random() * Math.floor(4));
switch (rand) {
case 0 : return <ModA/>
case 1: return <ModB/>
case 2: return <ModC/>
default: return "random text";
}
}
return (
<div className="App">
This is App
<button onClick = {() => {
this.setState({moda: getRandomMod() }
)}}>randomise left </button>
<button onClick = {() => {
this.setState({modb: getRandomMod() }
)}}>randomise middle </button>
<button onClick = {() => {
this.setState({modc: getRandomMod() }
)}}>randomise right</button>
<ThreeMod
moda={this.state.moda}
modb={this.state.modb}
modc={this.state.modc}
/>
</div>
);
}
}
ReactDOM.render(<App />, document.body
);
div {
border: solid 1px black;
padding: 0.2em;
}
.ThreeMod {
display:flex;
flex-flow: row;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id = "react"/>
这恰恰适用于我想做的事情--我想知道的是--这是不是做事情的错误方式?有没有理由(如表现)不这样做事?
我个人不使用这种方法,但是PropTypes文档中元素
(“一个React元素”)和节点
(“任何可以呈现的内容”)的存在表明它具有受支持的功能。
问题内容: 可以说我有: 在Tabs组件内部,具有属性 儿童[0](this.props.children)看起来像 儿童[0]。道具看起来像 最终,Children对象看起来像(这是我想要传递的): 问题是这样,如果我这样重写MultiTab 在选项卡组件内部 看起来和上面一样。 好像 我希望该物业看起来像。上面只是打印出Statement函数。 这是一个很奇怪的问题,但是长话短说,我正在使用一
英文原文:http://emberjs.com/guides/components/passing-properties-to-a-component/ 默认情况下,组件不能访问模板作用域下的属性。 例如,假设有一个用于显示一篇博客的blog-post组件: 1 2 3 4 <script type="text/x-handlebars" id="components/blog-post">
我正在使用react语义ui模态对象。打开模态的对象是一个道具。 我想在另一个组件中嵌入模态: 如何传递JSX代码(
我试图将一个useState函数传递给另一个prop,但我得到以下错误:未捕获范围错误:超出了最大调用堆栈大小 我在子组件中添加了useState函数作为按钮单击的句柄事件,并且假设该错误意味着它在循环中被调用?任何人都可以帮助我理解这里的问题吗?代码如下: 子组件(Inputfields.js):
在呈现组件时,我得到以下警告: 我想我的组件应该完全像托管输入字段那样工作,没有任何问题: 是初始值 回调更新中的道具 使用新道具呈现组件
问题内容: 大多数情况下,文件上传错误的根源是我们忘记了在HTML表单中添加属性。 通常,我们不需要为常规请求添加该属性。但是,在上传文件时,我们确实需要将其添加到HTML表单中, 我很好奇,如果没有该属性,为什么上传文件不起作用? 问题答案: “ multipart / form-data”编码类型由RFC1867指定,您可以在此处查看有关技术概述的更多信息。 在HTML表单中,数据表示为几个字