React Redux 通过函数将参数从 child 组件传递到 parent
React Redux passing parameters via functions from child components to parent
我就此问了 ,我相信回答问题的丹尼斯给出了我认为正确的答案。我不知道如何正确地将变量传递回 parent 函数...
这是我要修复的代码。
Child 一个 Child 组件
首先有一个 child 的 child 组件。如果单击它,这将设置列表的排序方向。它使用 "onSortDirectionChange" 函数,应该通过设置变量 "sortDirection".
来设置排序方向
const GlyphiconDirectionChange = (props) => {
const { onSortDirectionChange } = props
return (
<span>
{onSortDirectionChange === 'Ascending' ?
<span onClick={() => onSortDirectionChange('Ascending')} className='glyphicon glyphicon-sort-by-attributes'></span>
:
<span onClick={() => onSortDirectionChange('Descending')} className='glyphicon glyphicon-sort-by-attributes-alt'></span>
}
</span>
)
}
单击 header 名称旁边的字形图标,它应该会更改列表的方向。简单的组件。
Child分量
是parent,但是"ClientContainer"的child是TableHeaders。 "GlyphiconDirectionChange" 位于此组件中以显示您可以单击的向上或向下字形...
<GlyphiconDirectionChange onSortDirectionChange={onSortDirectionChange} />
Parent 组件
ClientContainer 是顶级组件(操作等将在稍后拆分 - 为了简单起见,它们现在就在那里)。这里TableHeaders显示如下:
<TableHeaders onSortByChange={this.handleSortBy}
onSortDirectionChange={this.handleSortDirection}
query={query}
currentPage={currentPage}
注意第二行是底部组件的函数。
指的是"HandleSortDirection".
handleSortDirection = (values = {}) => {
const { sortDirection, query, sortBy } = this.props
values.query = values.query || ''
const searchParams = {
query,
sortBy,
sortDirection,
...values,
currentPage: 1,
}
console.log('changeHeaders()!', values, searchParams)
this.fetchClients(searchParams)
}
问题
如何在 "child of a child component" 中设置变量并将它们移动到 "HandleSortDirection" 函数。
我遇到错误
Uncaught TypeError: Cannot create property 'query' on string 'Descending'
我需要将 "searchParams" 变量 "sortDirection" 设置为 "Ascending" 或 "Descending" 并在我的函数中正确使用..
如何将 sortDirection 变量正确传递给 parent 中的函数。
"How do you set variables in the "子组件的子组件”并将它们移动到 "HandleSortDirection" 函数。“
您已经这样做了,但是您打错了。
values.query = values.query || ''
此行出错,因为 values
等于 'Descending'
。您正在从您的子组件的子组件传递一个字符串到这里,它被向上传递到回调链直到它到达这里。
删除该行并将其替换为
const direction = values;
然后在 searchParams.
中传递 direction
代替 sortDirection,
我就此问了
这是我要修复的代码。
Child 一个 Child 组件
首先有一个 child 的 child 组件。如果单击它,这将设置列表的排序方向。它使用 "onSortDirectionChange" 函数,应该通过设置变量 "sortDirection".
来设置排序方向const GlyphiconDirectionChange = (props) => {
const { onSortDirectionChange } = props
return (
<span>
{onSortDirectionChange === 'Ascending' ?
<span onClick={() => onSortDirectionChange('Ascending')} className='glyphicon glyphicon-sort-by-attributes'></span>
:
<span onClick={() => onSortDirectionChange('Descending')} className='glyphicon glyphicon-sort-by-attributes-alt'></span>
}
</span>
)
}
单击 header 名称旁边的字形图标,它应该会更改列表的方向。简单的组件。
Child分量
是parent,但是"ClientContainer"的child是TableHeaders。 "GlyphiconDirectionChange" 位于此组件中以显示您可以单击的向上或向下字形...
<GlyphiconDirectionChange onSortDirectionChange={onSortDirectionChange} />
Parent 组件
ClientContainer 是顶级组件(操作等将在稍后拆分 - 为了简单起见,它们现在就在那里)。这里TableHeaders显示如下:
<TableHeaders onSortByChange={this.handleSortBy}
onSortDirectionChange={this.handleSortDirection}
query={query}
currentPage={currentPage}
注意第二行是底部组件的函数。
指的是"HandleSortDirection".
handleSortDirection = (values = {}) => {
const { sortDirection, query, sortBy } = this.props
values.query = values.query || ''
const searchParams = {
query,
sortBy,
sortDirection,
...values,
currentPage: 1,
}
console.log('changeHeaders()!', values, searchParams)
this.fetchClients(searchParams)
}
问题 如何在 "child of a child component" 中设置变量并将它们移动到 "HandleSortDirection" 函数。
我遇到错误
Uncaught TypeError: Cannot create property 'query' on string 'Descending'
我需要将 "searchParams" 变量 "sortDirection" 设置为 "Ascending" 或 "Descending" 并在我的函数中正确使用..
如何将 sortDirection 变量正确传递给 parent 中的函数。
"How do you set variables in the "子组件的子组件”并将它们移动到 "HandleSortDirection" 函数。“
您已经这样做了,但是您打错了。
values.query = values.query || ''
此行出错,因为 values
等于 'Descending'
。您正在从您的子组件的子组件传递一个字符串到这里,它被向上传递到回调链直到它到达这里。
删除该行并将其替换为
const direction = values;
然后在 searchParams.
direction
代替 sortDirection,