创建未创建 pnp/sp 的列表列

Creating List Columns with pnp/sp not being created

所以我可以用 ensure 创建一个列表:

sp.web.lists.ensure(list)
    .then((ler: ListEnsureResult) => {

        if (ler.created) {
            console.log(list, " was created; creating column");

            ler.list.fields.addText("myTestColumn");
        }
        return ler.created;
    });

但没有创建列。

我也试过 here and here 中的代码示例,但都没有用。

如评论中所述,您的代码运行良好。

只是该列在列表视图中不可见。它已经在列表中创建,当我们检查列表设置页面或尝试创建新列表项时可见。

因此,现在您需要将列添加到默认列表视图。为此,您只需进行额外的 REST API 调用,使其在默认列表视图中可见,如下所示:

sp.web.lists.ensure(list)
    .then((ler: ListEnsureResult) => {

        if (ler.created) {
            console.log(list, " was created; creating column");

            ler.list.fields.addText("myTestColumn").then(function(){

                const view = ler.list.defaultView;

                view.fields.add("myTestColumn");

          });           

        }
        return ler.created;
    });