Javascript 将值从一个组件传递到另一个组件
我将地址存储在变量中,并通过以下方式将其发送到另一个组件:Javascript 将值从一个组件传递到另一个组件,javascript,reactjs,Javascript,Reactjs,我将地址存储在变量中,并通过以下方式将其发送到另一个组件: this.setState({ place\u formatted:place.formatted\u地址, 地点识别码:地点。地点识别码, place_位置:location.toString(), }); var addr=place.formatted\u地址; 控制台日志(addr); 更改测试={this.props.addr}->addr={addr} this.setState({ place\u formatted:
this.setState({
place\u formatted:place.formatted\u地址,
地点识别码:地点。地点识别码,
place_位置:location.toString(),
});
var addr=place.formatted\u地址;
控制台日志(addr);
更改测试={this.props.addr}->addr={addr}
this.setState({
place\u formatted:place.formatted\u地址,
地点识别码:地点。地点识别码,
place_位置:location.toString(),
});
var addr=place.formatted\u地址;
控制台日志(addr);
更改测试={this.props.addr}->addr={addr}
this.setState({
place\u formatted:place.formatted\u地址,
地点识别码:地点。地点识别码,
place_位置:location.toString(),
});
var addr=place.formatted\u地址;
控制台日志(addr);
在选项卡组件中,道具作为测试通过,因此请尝试
class Tab extends React.Component {
render() {
console.log(this.props.test);
在选项卡组件中,道具作为测试通过,因此请尝试
class Tab extends React.Component {
render() {
console.log(this.props.test);
您需要将
组件移动到窗体组件的呈现()方法并从状态传递放置格式化的值
如果place\u formatted
不为空,则可以添加附加检查
代码如下:
Form.jsx
class Form extends React.Component {
...all the code
render() {
const { place_formatted } = this.state
return (
...
{ place_formatted &&
<Tab test={place_formatted} />
}
...
)
}
}
类表单扩展了React.Component{
…所有代码
render(){
const{place_formatted}=this.state
返回(
...
{place_&&
}
...
)
}
}
在这种情况下,您将能够在选项卡
组件中获取此值,作为this.props.test
您需要将
组件移动到表单
组件的呈现()方法,并从状态传递放置格式化的
值
如果place\u formatted
不为空,则可以添加附加检查
代码如下:
Form.jsx
class Form extends React.Component {
...all the code
render() {
const { place_formatted } = this.state
return (
...
{ place_formatted &&
<Tab test={place_formatted} />
}
...
)
}
}
类表单扩展了React.Component{
…所有代码
render(){
const{place_formatted}=this.state
返回(
...
{place_&&
}
...
)
}
}
在这种情况下,您将能够在选项卡
组件中获得该值,即this.props.test
这只是一个输入错误。在第一个代码示例中,您已将addr发送到Table
组件,而在第二个代码示例中,您尝试在Tab
组件中访问addr。@omri_saadon Hi我的页面名为Table.js,在该类中为Tab,我也尝试了访问,但它仍然未定义,请在这里添加导出选项卡的代码
和导入表格的代码
请添加完整组件的代码,以了解实际发生的情况。@DenysKotsur Hi,我在上面的帖子中添加了全部代码。这只是一个打字错误。在第一个代码示例中,您已将addr发送到Table
组件,而在第二个代码示例中,您尝试在Tab
组件中访问addr。@omri_saadon Hi我的页面名为Table.js,在该类中为Tab,我也尝试了访问,但它仍然未定义,请在这里添加导出选项卡的代码
和导入表的代码
请添加完整组件的代码,以了解实际发生的情况。@DenysKotsur Hi,我已在上面的帖子中添加了全部代码。在第一个控制台语句中,它的未定义是否仍然有价值?是的,但在第二个控制台语句中(Tabs console.log)它是未定义的till unfinednope仍然是它的unfinedin第一个控制台语句你得到值了吗?是的,但在第二个控制台语句中(Tabs console.log)它是undefinedStill undefinedStill它是undefined的,我想提一下Tab组件在另一个Table.js文件中,它会影响情况吗?让我们试试这个。你应该在console.logif中看到TEST_字符串,而不是-yourthis.props.addr
在UndefinedNo它仍然是未定义的,在这里标记关于TEST_字符串的部分,你可以找到方法若要将道具传递给子组件,它仍然是未定义的,我想指出Tab组件在另一个Table.js文件中,它会影响情况吗?让我们试试这个。您应该在console.logif中看到TEST_STRING,而不是-yourthis.props.addr
在Undefinedno中,它仍然是未定义的,在这里标记TEST_STRING部分,您可以了解如何操作为了将道具传递给子组件Hi,我尝试了您的解决方案,它成功了,但问题是我已经有了来自另一个.js文件的语法为:的items数组,现在当我使用您的代码时,它显示了一个错误:TypeError:无法读取未定义的属性“sort”。我已经编辑了我的post aboe以添加整个组件。@AnandTrivedi在对其进行.map()
之前,您可以检查项
是否为未定义的
。{items&&items.map(item=>{…}}
@AnandTrivedi如果你想从一个组件中部分传递项目
,从另一个组件中传递测试
,这是不可能的。你必须对这两个组件都使用共享状态,然后向下传递或使用它们。另外,我建议你阅读文档。嗨,我尝试了你的解决方案,但问题是我已经有了项目数组从另一个语法为:的.js文件中,现在当我使用你的代码时,它显示了一个错误:TypeError:无法读取未定义的属性“sort”。我已经编辑了我的post aboe以添加整个组件。@AnandTrivedi在对它进行.map()
之前,你可以检查项是否未定义。{items&&items.map(item=>{…})}
@AnandTrivedi如果您想从一个组件传递部分items
,从另一个组件传递部分test
,这是不可能的。您必须对这两个组件都使用共享状态并向下传递或使用它们。此外,我建议您从文档中阅读。