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