小编Jur*_*Jur的帖子

输入值在 Angular 中没有变化

我有一个自定义组件,用户可以在其中使用下拉/输入组合搜索值并单击结果或在下拉列表中滚动和搜索并单击该值,这会将输入值设置为单击的下拉值。

假设值为:['foo', 'bar', 'fee']

如果我在下拉列表中单击“foo”,输入值将按预期更改为“foo”。但是,如果我退格到“f”,然后再次单击“foo”,它会将变量设置为“foo”,但不会更新下拉值。

如果我的值是“foo”,我退格并单击“fee”,它会像它应该的那样更新。

我的值没有在输入中更新是什么问题?

搜索选择.html:

<div>
    <input type="text"
        (input)="filterDropdown()"
        [(ngModel)]="filterValue" [value]="selectedItemName"/> <-- no change here
        {{selectedItemName}} <-- does change here (but I don't want it here)
    <div>
        <div *ngFor="let item of filteredItems" (click)="setItem(item)">
            {{item.name}}
        </div>
</div>
Run Code Online (Sandbox Code Playgroud)

搜索选择.ts:

public setItem(item): void {
        this.selectedItemName = item[this.itemName];
}
Run Code Online (Sandbox Code Playgroud)

html javascript ionic-framework angular

5
推荐指数
1
解决办法
7869
查看次数

React Hooks动态输入

我有一个表单组件,您可以在其中单击按钮添加输入,创建一个新团队,并在其中添加球员。

问题是,如果您输入一个值,则所有输入都将被该值填充,因为它使用的是相同状态。我的猜测是为每个新团队创建一个新的状态值(类似于“输入” +索引,这将导致输入0,输入1,输入2等状态)。

尽管我无法使用React Hooks实现此操作,因为您必须首先声明状态并为其分配一个set函数。

是否对如何实现这种行为有任何想法?

javascript typescript reactjs

4
推荐指数
1
解决办法
547
查看次数

React + Typescript 对象道具对组件错误

简单案例;我正在呈现“评论”列表。这些是使用以下 Proptype 提供的:

export interface Props {
    title: string;
    name: string;
    reviewdesc: string;
    rating: number;
}
Run Code Online (Sandbox Code Playgroud)

通过父组件中的结果进行映射:

{reviews.map((review: Props) => {
    return <Review data={review} />;
})}
Run Code Online (Sandbox Code Playgroud)

并在子组件中使用相同的 Proptypes:

const Review = (data: Props) => { ...
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:

Type '{ data: Props; }' is not assignable to type 'IntrinsicAttributes & Props'.
  Property 'data' does not exist on type 'IntrinsicAttributes & Props'.
Run Code Online (Sandbox Code Playgroud)

感觉好像忘记了一件小事。我想我应该像{data}在子组件中一样捕捉道具,但它给出了:

Property 'data' does not exist on type 'Props'.
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs

2
推荐指数
1
解决办法
1314
查看次数

使用 React Hooks 设置嵌套数组的状态

我使用 React Hooks 一段时间了,但对我来说最大的问题是使用数组。

我正在为团队制作一份注册表。球队有球员(字符串数组)。

用户应该能够添加团队,并且对于每个团队,都会显示一个输入,并在输入上方显示团队中的当前成员。

我的问题:如何使用 React Hooks 设置嵌套数组的状态?

单击按钮时,它应该(目前)将一个字符串添加到当前团队的玩家数组中。

我的代码:

interface ITeam {
    id: string;
    players: Array<string>;
}


export default function Team() {
const [teams, setTeams] = useState<Array<ITeam>>([{id: '1', players: ['a', 'b']}]);

return (
    <div>
        {teams.map((team, teamIndex) => {
            return (
                <div key={teamIndex}>
                    <h2>Team {teamIndex + 1}</h2>
                    <ul>
                        {team.players.map((player, playerIndex) => {
                            return (
                                <div key={playerIndex}>
                                    {player}
                                </div>
                            );
                        })}
                    </ul>
                    <button onClick={() => setTeams([...teams, team.players.concat('c')])}>Add player</button>
                </div>
            );
        })}
    </div>
);
}
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs react-hooks

1
推荐指数
1
解决办法
1万
查看次数