0
「刪除」我正在奇怪的錯誤未捕獲的(以諾)類型錯誤:無法讀取屬性未定義
另一個回答說有不當的進口做。我曾嘗試聲明一些方法,如var render_product_url = function()....
等等,全部失敗。
AddRendering.js
import React from "react"
export function add_rendering(headers, target_header, rendering_callback) {
var new_headers = [];
for (let i = 0; i < headers.length; i++){
var this_header = headers[i];
if (this_header == target_header){
var header_object = {
title: target_header,
render: rendering_callback
};
new_headers.push(header_object);
} else {
new_headers.push(this_header);
}
}
return new_headers
}
function render_product_url(val, row) {
return (<a href={"http://www.website.com/product/" + row[target_header]} target="_blank">{row[target_header]}</a>)
}
export function render_product_url_in_datatable(headers, target_header) {
return add_rendering(
headers,
target_header,
render_product_url
)
}
ThisController.js
import React from "react"
import { render_product_url_in_datatable } from '../commonutils/AddRendering';
render() {
..
these_metrics.headers = render_product_url_in_datatable(these_metrics.headers, 'Part Number');
..
}
最不可思議的部分是這個工程:
import React from "react"
export function add_rendering(headers, target_header, rendering_callback) {
var new_headers = [];
for (let i = 0; i < headers.length; i++){
var this_header = headers[i];
if (this_header == target_header){
var header_object = {
title: target_header,
render: rendering_callback
};
new_headers.push(header_object);
} else {
new_headers.push(this_header);
}
}
return new_headers
}
// function render_product_url(val, row) {
// return (<a href={"http://www.website.com/p/" + row[target_header]} target="_blank">{row[target_header]}</a>)
// }
export function render_product_url_in_datatable(headers, target_header) {
return add_rendering(
headers,
target_header,
function render_product_url(val, row) {
return (<a href={"http://www.website.com/p/" + row[target_header]} target="_blank">{row[target_header]}</a>)
}
)
}
匿名也適用,就像
return add_rendering(
headers,
target_header,
function(val, row) {
..
}
我發現相比普通語言這個JS導入語法笨拙,但這是正常的JS。
爲什麼你能不能用在JavaScript中的文件的其他聲明的函數?這是使用ES6和React。謝謝
奇怪的是,你甚至到達那裏,因爲'target_header'不範圍。 – Ryan
我相信這是傳遞它從'render_product_url_in_datatable(頭,target_header)' – codyc4321
@ codyc4321得到,當它裏面的'render_product_url_in_datatable'它可以從功能參數得到它,但在你的第一個例子中的其他功能('render_product_url' )在作用域上沒有'target_header'。 – MinusFour