Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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.js-完成了一个API获取,用于呈现所有项目,现在我希望能够将每个项目路由到它们的;“拥有”;包含JSON信息的页面_Javascript_Reactjs_Api_Routes - Fatal编程技术网

Javascript React.js-完成了一个API获取,用于呈现所有项目,现在我希望能够将每个项目路由到它们的;“拥有”;包含JSON信息的页面

Javascript React.js-完成了一个API获取,用于呈现所有项目,现在我希望能够将每个项目路由到它们的;“拥有”;包含JSON信息的页面,javascript,reactjs,api,routes,Javascript,Reactjs,Api,Routes,我已经创建了一个React站点,它在一个页面上呈现API获取中的所有项目。我现在想要的是能够按下渲染的每个项目,并能够被路由到一个新组件,显示关于该项目的“更多”信息 下面我有以下代码,其中包含“输入”,您可以使用它搜索所有项目或特定项目。 const AgentSearch = (e) => { e.preventDefault(); function capitalizeName(input) { return input.rep

我已经创建了一个React站点,它在一个页面上呈现API获取中的所有项目。我现在想要的是能够按下渲染的每个项目,并能够被路由到一个新组件,显示关于该项目的“更多”信息

下面我有以下代码,其中包含“输入”,您可以使用它搜索所有项目或特定项目。

  const AgentSearch = (e) => {
       e.preventDefault();

       function capitalizeName(input) {
           return input.replace(/\b(\w)/g, (s) => s.toUpperCase());
       }

       console.log('you hit search', input);
       dispatch({
           type: actionTypes.SET_SEARCH_TERM,
           term: capitalizeName(input),
       });
       //do something with input

       history.push('/findagent');
   };
   return (
       <form className='search'>
           <div class='search__input'>
               <SearchIcon className='search__inputIcon' />
               <input value={input} onChange={(e) => setInput(e.target.value)} />
           </div>
const-AgentSearch=(e)=>{
e、 预防默认值();
函数名(输入){
返回输入。替换(/\b(\w)/g,(s)=>s.toUpperCase());
}
log('youhitsearch',input);
派遣({
类型:actionTypes.SET\u搜索词,
术语:大写名称(输入),
});
//用输入做点什么
history.push('/findagent');
};
返回(
setInput(e.target.value)}/>
以下是呈现所有项目的代码:

       eachName = data.map((item) => {
            return (
                <tr>
                    <td class='text-left'>{item.name}</td>
                    <td class='text-left'>{item.agency}</td>
                </tr>
            );
        });
eachName=data.map((项目)=>{
返回(
{item.name}
{项目.机构}
);
});
基本上,我想做的是“捕获”{item.name},并在按下创建的列表上的该项后将其放入fetch的新查询中

我试图创建一个覆盖整个类的按钮,然后将{item.name}作为输入,但这不起作用,我还试图创建一个“假”输入窗口,为列表中的每个项目存储{item name},即使{item name}进入输入窗口,一旦我按下它所连接的按钮,它就会说它没有任何值

有人知道这方面有什么干净的想法吗?我是新手,所以这可能真的很容易,哈哈


谢谢!

最简单的方法是单击
td
上的
onCLick
。请参阅下面的代码

const eachName = data.map((item) => {
    return (
        <tr>
            <td class='text-left' onClick={() => handleNameClick(item.name)}>{item.name}</td>
            <td class='text-left'>{item.agency}</td>
        </tr>
    );
});

非常感谢你,这么简单的回答,我现在觉得自己很愚蠢,哈哈!你到底在说什么?你在什么地方出错了吗?你不知道如何检查
{item.name}
const handleNameClick = itemName => {
    //your code to send request for the clicked name
}