我有这样的功能:
let ChoosePage = (i) => {
let urls = [
'http://localhost:3005/products/774944',
'http://localhost:3005/products/774945',
'http://localhost:3005/products/774946',
'http://localhost:3005/products/123581',
'http://localhost:3005/products/782691',
'http://localhost:3005/products/782485',
'http://localhost:3005/products/782486',
'http://localhost:3005/products/782487',
'http://localhost:3005/products/782488',
'http://localhost:3005/products/738471'];
let urls_sliced = urls;
if (i === 0) {
urls_sliced = urls.slice(0, 3);
} else if (i === 1) {
urls_sliced = urls.slice(4, 7);
} else if (i === 2) {
urls_sliced = urls.slice(8, 9);
}
let show_items = () => {
ReactDOM.render(urls_sliced.map((url)=>{
return(
<Item url={url}/>
)
}), document.getElementById('items'));
}
show_items()
}
export default ChoosePage;
我试图通过在另一个file.js中使用onClick事件来调用它,如下所示:
import ChoosePage from './index';
<Page onClick={ChoosePage(0)}>1</Page>
<Page onClick={ChoosePage(1)}>2</Page>
<Page onClick={ChoosePage(2)}>3</Page>
它返回错误,表明Object不是函数,我缺少什么?
答案 0 :(得分:1)
您需要此更改:
import ChoosePage from './index';
<Page onClick={e=>{ChoosePage(0)}}>1</Page>
<Page onClick={e=>{ChoosePage(1)}}>2</Page>
<Page onClick={e=>{ChoosePage(2)}}>3</Page>
答案 1 :(得分:0)
可能您必须在onClick内使用回叫
onClick={()=>{ChoosePage(0)}}
或只是将函数本身传递到onClick正文中,看看会发生什么onClick={ChoosePage}