Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击React数据表组件中的项,导航到新页面_Javascript_Reactjs - Fatal编程技术网

Javascript 单击React数据表组件中的项,导航到新页面

Javascript 单击React数据表组件中的项,导航到新页面,javascript,reactjs,Javascript,Reactjs,当用户单击行项目时,我需要导航到新链接,链接是基于该行的数据动态构建的,我使用的是react data table组件,他们有一个名为onRowClicked的道具,我能够获得被按下的行的数据,但我无法导航到新页面。关于如何导航,有什么想法吗 我尝试的是: <DataTable columns={columns} data={rowData} onRowClicked={rowData => ( <Redirect push to={`/admin/

当用户单击行项目时,我需要导航到新链接,链接是基于该行的数据动态构建的,我使用的是react data table组件,他们有一个名为onRowClicked的道具,我能够获得被按下的行的数据,但我无法导航到新页面。关于如何导航,有什么想法吗

我尝试的是:

    <DataTable
  columns={columns}
  data={rowData}
  onRowClicked={rowData => (
    <Redirect push to={`/admin/productspage/${rowData.shortName}`} />
  )}
  pointerOnHover={true}
  highlightOnHover={true}
  theme="light"
  customStyles={customStyles}
  striped={true}
/>
(
)}
pointerOnHover={true}
highlightOnHover={true}
主题=“光”
customStyles={customStyles}
条带={true}
/>
但它不起作用


请注意:我没有任何历史记录传递给包含react数据表组件的组件。

您无法重定向,因为您需要在代码中呈现您的
,以便它可以正常工作

对于功能组件(请确保从“React”导入{useState}):

const[redirState,setState]=useState(false);
const[shortName,setData]=useState(“”);
让重定向=重新设置状态?() : '';
返回(
{
设置状态(真);
setData(rowData.shortName);
}}
pointerOnHover={true}
highlightOnHover={true}
主题=“光”
customStyles={customStyles}
条带={true}
/>
{重定向}
);

请与我们分享一些代码以帮助您。父级是react hook,即功能组件。另外,如何在渲染中获取${rowData.shortname}的数据?当您仅在状态中保存布尔值时,我已使用从组件提取到父状态的数据更新了功能组件的代码
          const [redirState, setState] = useState(false);
          const [shortName, setData] = useState('');
          let redirecting = redirState ? (<Redirect push to={`/admin/productspage/${shortName}`}/>) : '';
          return (
              <DataTable
                columns={columns}
                data={rowData}
                onRowClicked={rowData => {
                  setState(true);
                  setData(rowData.shortName);
                  }}
                pointerOnHover={true}
                highlightOnHover={true}
                theme="light"
                customStyles={customStyles}
                striped={true}
              />
              {redirecting} 
              );